かなり奇妙な問題/質問と呼ばれるものがあります。
他の多くの異なるテーブルの 1 つ (そして 1 つだけ) を参照するテーブルがあるとします。どうすれば最善の方法でそれを行うことができますか?? 大多数のデータベース (MS SQL、MySQL、PostgreSQL など) で機能するソリューションを探しています。私の見方では、いくつかの異なる解決策があります(他の解決策よりも優れていますか?):
- 可能な参照ごとに 1 つの列を用意します。これらの列のうち、特定の行の値を含むことができるのは 1 つのみで、その他はすべて null です。厳密な外部キーを許可しますが、「多数」(参照される可能性のあるテーブル) の数が大きくなると面倒になります
- 2 つの列の関係があります。つまり、1 つの列は参照されるテーブルを「説明」し、もう 1 つの列はインスタンス (そのテーブルの行) を参照します。「多くの」(参照されるテーブル)の数が増えると簡単に拡張できますが、単純な方法で単一のクエリ検索を実行することはできません(可能なすべてのテーブルを左結合するか、それぞれ1つのテーブルに結合する複数のクエリを結合します)
- ??
わかる?この場合のベスト プラクティス (もしあれば) は何ですか? どのテーブルが参照されているかを実際に知らなくても、参照されたエンティティからデータをクエリできるようにしたいのです。
どうしますか?