SQLでは、列のグループのうちの1つの列に値があり、それ以外の列がNULLであることを強制する方法はありますか?多分制約やトリガーですか?このタイプのものはルックアップテーブルのためのものかもしれませんが、これをより良く実現する代替テーブルデザインはありますか?例えばSQL:列のグループに単一の列のみが設定されているように強制する方法
:
ID OtherTable1ID OtherTable2ID OtherTable3ID
-----------------------------------------------------
1 23 NULL NULL
2 NULL 45 NULL
3 33 55 NULL -- NOT ALLOWED
主な問題は、これらの列が他のテーブルへのすべてのFKSであるということですので、私は単一の列にそれらを折りたたむことができません。
私はSQL Serverを使用していますが、何らかの回答があります。
更新いただきありがとうございますが、データベース設計の詳細についてお伝えください。たとえば、これはサブタイプの状況ですか?この表は、他の表の1つだけのサブタイプである可能性があります。また、「その他」の列がすべてNULLであることは許可されていますか? –
ルックアップテーブルのように見えます。基本的に、FKをもう1つ追加すると、もう1つの列が追加されますか? –
ええ、それは基本的に私のためのルックアップテーブルです。別のルックアップパラメータを追加する必要がある場合は、別のFK列を追加する必要があります。これを達成するより良い方法はありますか? –