0

ER 図のカーディナリティ制約についての理解を深めたいと思います。

私は2つのエンティティを持っています:

  1. User
  2. Location

しかし、私はこれら 2 つのエンティティ間の関係を多対多にしたいと考えています (ユーザーは多くの場所に存在でき、場所には多くのユーザーが存在できます)。

これを行うには、アソシエーション クラスを導入する必要がありUserLocationます。

現在、エンティティが 3 つあるというのは正しいですか?

上記の ER ダイアグラムを描くとしたら、UserLocationエンティティを描くでしょうか。カーディナリティは次のようになりますか?

User 1 ------ * User Location *  ------ 1 Location
4

2 に答える 2

1

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

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

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

リレーショナルの世界では、これは次のようにモデル化されます。

  • 主キー USER_ID を持つ表 USER
  • 主キー LOCATION_ID を持つテーブル LOCATION
  • 上記の各テーブルに 1 つずつ、2 つの外部キーを持つテーブル USER_LOCATION。

関係図では「仲介者」は見えないと思います。したがって、次のようなものが必要になると思います。

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

于 2010-07-28T14:50:26.580 に答える
1

それはすべて、実行しているエンティティ マッピングのタイプとレベルに依存します。

関係性をそのまま表現できる

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

多くの関係を表すために「カラスの足」を使用するなど。

マップを正規化する場合、中間テーブルとの多対多の関係を分割します。これには通常、多数のテーブルの両方の主キーが含まれます

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

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

于 2010-08-02T14:04:22.653 に答える