-
28-09-2019 - |
質問
ER図におけるカーディナリティの制約についての理解を向上させたいと思います。
私には2つのエンティティがあります:
User
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を保持します。
所属していません StackOverflow