我想提高我对ER图中基数约束的理解。
我有两个实体:
User
Location
但是,我希望这两个实体之间的关系是多对多的(用户可以在很多位置,一个位置可以有很多用户)。
为此,我需要引入一个关联类UserLocation
。
说我现在有3个实体是否正确?
如果我要绘制上述的ER诊断,我会在UserLocation
实体中绘制,基数是否会像这样?
User 1 ------ * User Location * ------ 1 Location
答案 0 :(得分:1)
您不需要第三个实体。
在实体世界中,建模如下:
在Relational世界中,建模如下:
我相信在关系图中,“中介”是不可见的。所以,我认为你需要这样的东西:
用户* ------- *位置
答案 1 :(得分:1)
这完全取决于您正在进行的权利映射的类型和级别。
你可以表达这种关系
实体1<>实体2
比如使用'Crows Feet'来代表许多关系。
在规范化地图时,您将分解与中间表的多对多关系,这通常包含两个表的主键
实体1>实体3<实体2
其中实体3(您的中间表)将为两个表保留PK,并且偶尔保存任何其他数据,例如唯一ID等。