0

我想提高我对 ER 图中基数约束的理解。

我有两个实体:

  1. User
  2. Location

但是,我希望这两个实体之间的关系是多对多的(一个用户可以在很多位置,一个位置可以有很多用户)。

为此,我需要引入一个关联类UserLocation

说我现在有 3 个实体是否正确?

如果我要绘制上述的 ER 图,我会在UserLocation实体中绘制吗?基数会像这样吗?

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

2 回答 2

1

您不需要第三方实体。

在实体世界中,这是这样建模的:

  • 实体用户有一个位置列表。
  • 实体 Location 有一个用户列表。

在关系世界中,这是这样建模的:

  • 表 USER,主键为 USER_ID
  • 具有主键 LOCATION_ID 的表 LOCATION
  • 一个表 USER_LOCATION,有两个外键,每个表对应一个。

我相信在关系图中,“中介”是不可见的。所以,我认为你需要这样的东西:

用户 * ------- * 位置

于 2010-07-28T14:50:26.580 回答
1

这完全取决于您正在执行的实体映射的类型和级别。

您可以按原样表达关系

实体 1 <> 实体 2

比如用'Crows Feet'来代表很多关系。

规范化映射时,您将分解与中间表的多对多关系,这通常包含许多表的主键

实体 1 > 实体 3 < 实体 2

实体 3(您的中间表)将保存两个表的 PK,偶尔也会保存任何其他数据,例如唯一 ID 等。

于 2010-08-02T14:04:22.653 回答