質問

ER図におけるカーディナリティの制約についての理解を向上させたいと思います。

私には2つのエンティティがあります:

  1. User
  2. Location

しかし、私はこれら2つのエンティティ間の関係を多目にしたい(ユーザーは多くの場所にいることができ、場所には多くのユーザーがいることがあります)。

これを行うには、協会クラスを紹介する必要があります UserLocation.

私が今3つのエンティティを持っていると言うのは正しいですか?

上記のer diagamを描く場合、私は UserLocation エンティティ、そしてカーディナリティはこのように見えますか?

User 1 ------ * User Location *  ------ 1 Location
役に立ちましたか?

解決

3番目のエンティティは必要ありません。

エンティティの世界では、これは次のようにモデル化されています。

  • エンティティユーザーには場所のリストがあります。
  • エンティティの場所には、ユーザーのリストがあります。

関係の世界では、これは次のようにモデル化されています。

  • プライマリキーユーザー_IDを備えたテーブルユーザー
  • プライマリキーロケーション_IDを備えたテーブルの場所
  • 上記のテーブルのそれぞれに1つは、2つの外国のキーを備えたテーブルuser_location。

リレーショナル図では、「仲介者」が見えないと思います。だから、私はあなたにはこのようなものが必要だと思います:

ユーザー * ------- *場所

他のヒント

それはすべて、あなたがしている権利マッピングのタイプとレベルに依存します。

関係をそのまま表現できます

エンティティ1 <>エンティティ2

「カラスの足」を使用して多くの関係を表すなど。

マップを正規化すると、中間テーブルとの多くの関係を壊しますが、これには通常、多くのテーブルの両方の主要なキーが含まれます。

エンティティ1>エンティティ3 <エンティティ2

エンティティ3(中間テーブル)は、両方のテーブルと、一意のIDなどの他のデータの両方のPKを保持します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top