さまざまな「エンティティ」(属性が異なる)がメッセージを送信し、他のエンティティからのパブリックメッセージとやり取りするWebアプリケーションを開発しているとします。これらのエンティティは、いくつかのタイプのものかもしれません:ユーザー、私設会社、アカデミー...DBデザイン。継承
DBを設計するには、2つのオプションが考えられますが、どちらが良いかわかりません。私には起こらなかった他の良いオプションです。
オプション1:異なるテーブル内の異なるエンティティを区切ります。この場合、メッセージを格納するテーブルには、それを発行したエンティティ、ID、およびタイプを識別する少なくとも2つの列が必要です。
オプション2:すべてのエンティティを親クラスから継承させる。したがって、メッセージを格納するテーブルには、発行したエンティティのIDを指す外部キーのみが必要です。このオプションははるかに優れているようですが、問題はすべてのエンティティに共通の属性を見つけることができないため、親テーブルにidだけがあることです。
どのオプションが良いと思いますか?より良い選択肢はありますか?
PS:オプション2の場合、主キーが十分であるため、子テーブルに独自のIDがあるか、外部キーを定義する必要がありますか?
ありがとうございました。
あなたの答えをありがとう。オプション2は私にとっても良いようです – DandyCC