特定の行で1つを除くすべてがNULLであるテーブルで、外部キーのセットを使用する手法の名前は何ですか?
言い換えると、各行にはn個の異なる可能なテーブルの1つ(および1つだけ)への外部キーが必要なので、実際には必要なすべての外部キーがありますが、1つを除くすべてがNULLです。
(Djangoのユーザーは、これを汎用外部キーを使用する代わりに認識することができます)
特定の行で1つを除くすべてがNULLであるテーブルで、外部キーのセットを使用する手法の名前は何ですか?
言い換えると、各行にはn個の異なる可能なテーブルの1つ(および1つだけ)への外部キーが必要なので、実際には必要なすべての外部キーがありますが、1つを除くすべてがNULLです。
(Djangoのユーザーは、これを汎用外部キーを使用する代わりに認識することができます)
あなたが説明しているデザインの用語はExclusiveArcです。
代わりに、n個の異なる親テーブルの共通のスーパーテーブルを参照する1つの外部キーを作成することを好みます。
ポリモーフィックな関連付けについては、他の回答を参照してください。
例を示した方が簡単ですが、これを解決する一般的な方法は、それらのテーブルに共通のスーパータイプを見つけることです。テーブルBook, Article, Magazine
があり、テーブルがこれらのテーブルへの外部キーを持つ必要があるとします。共通のスーパータイプを使用すると、Publication
これが解決されます。モデルと同様の質問/回答については、こちらを参照してください。