一部に応じて関係を禁止する外部キー制約を設けることは可能WHERE
ですか?
これはそれほど単純に聞こえないかもしれないので、例を挙げて説明しようと思います。
2つの「通常の」テーブルがあります。
Person
Task
そして、それらの間のN:M関係はトラフです:
Team
1つのタスクは、それ自体の「下」に複数のタスクを持つことができます。したがって、「ツリー」順序を作成します。またtask
、「チーム」の場合はブール値が含まれisTeam
ます。例えば:
- クリーニング(
isTeam: true
) - 階下のトイレの掃除(
isTeam: false
)
- 階下のトイレの掃除(
- 2階のトイレの掃除(
isTeam: false
)
- 2階のトイレの掃除(
- 1階拭き(
isTeam: false
)
- 1階拭き(
- 2階拭き(
isTeam: false
)
- 2階拭き(
- 夕食(
isTeam: true
) - 食事の準備(
isTeam: false
)
- 食事の準備(
- テーブルの準備(
isTeam: false
)
- テーブルの準備(
- など(
isTeam: false
)
- など(
画像:人はチームに属しています(チームは(可能な)サブタスクを持つ1つのタスクであり、isTeam = true)
表は、サブを持つ特定のTeam
の責任者を示しています。適用する必要のある制限:Aは、 sの場合にのみaにアタッチできます。task
tasks
Person
Task
Task
isTeam=true
これは可能ですか?
PS(私は考えています、それは持っているものview
だけを選択することを使用して行うことができますか?)Tasks
isTeam=true