私のテーブルスキーマは次のとおりです。
r(int aID not null, int bID not null, bool main)
主キー(aId、bID)。aIDとbIDはどちらも外部キーです(異なるテーブルを参照します)。
すべてのaIDに対して、main=trueでもあるbIDが常に1つだけ存在することを強制したいと思います。
どうすればdbレベルでそれを行うことができますか?を追加することで「最大1」を強制できconstraint unique (aID, main)
、mainはtrueまたはNULLのいずれかです。
「少なくとも1つ」の部分はどうですか?
PS:MySQLに取り組んでいます。
編集:明確化のためのデータの例:aIDとbIDのさまざまな組み合わせを使用できますが、各aIDについて、main=trueを持つ組み合わせは1つだけです。デモデータ:
1, 2, true
1, 3, NULL
1, 4, NULL
1, 5, true <- wrong, only one main=true
...