Customer、Broker、Company などのエンティティがあります。これらには異なる属性があり、異なるテーブルにある必要があります。しかし、私たちの場合は連絡先情報 (エンティティ -> 連絡先は 1 対多の関係) のように、共通のものを持つことができます。それを行う最良の方法は何ですか。完璧な設計が存在しない場合、最も重要なことは可能な限り最小限のコードを記述することである場合はどうすればよいでしょうか。
ケース 1: すべてのエンティティに「共通」の auto-inc entityId があります (それらは主キーを共有するため、id=1 の Customer と id=1 の Company を持つことはできません)
ケース 2: 'contact' は、それが参照するエンティティに関する情報を格納します。(顧客、企業、ブローカーは主キーを共有しません)
ケース 3: エンティティごとに 1 つずつ、3 つの連絡先テーブル。
これらのテーブルを接続する方法は他にもありますが、頻繁に発生する問題です。特に解決策が気に入らないので、決定してください。