0

ユーザーは、フリーランサーと会社など、2 つのプロファイル タイプのいずれかを作成できます。このプロファイル タイプには、いくつかの一般的なフィールドといくつかの固有のフィールドがあります。会社には、従業員として多くのユーザーがいる場合があります。

より明確にするために: ユーザー HAS_ONE プロファイル (フリーランサーまたは会社); 会社 HAS_MANY ユーザー;

この状況に最適なデータベース設計について何か提案はありますか?

4

2 に答える 2

2

ProfileTypeIDプロファイル タイプ値への外部キーを持つ 1 つのデータベース テーブル。

  • フリーランサー
  • 会社

この 1 つのフィールドは、どの追加属性がユーザーに関連付けられているかを判断するのに役立ちます。あとはシンプルなUIです。

于 2012-10-22T17:42:41.197 に答える
0

それは継承です。このケースに直面した場合、3つの選択肢があります。

最初のオプションは、会社とフリーランサーtypeidのどちらであるかを知るためのテーブルを備えた会社とフリーランサーのための1つの大きなテーブルですが、あなたの場合、多くのnulls

2番目のオプションは、会社とフリーランサー用の2つの別々のテーブルと、ユーザーテーブルの共通属性です。次に、ユーザーテーブルを追加typeIdして、会社かフリーランサーかを確認する必要があります。

3番目のオプションは、ユーザー、フリーランサー、および会社用に1つの大きなテーブルを作成することですが、これはnullが最も多いオプションです。

いくつかの共通フィールドといくつかの一意のフィールドがあるため、あなたの場合の最良のオプションは2番目のオプションです。

于 2012-10-22T17:52:42.107 に答える