一个关系可以 link 三个或更多实体吗?

Can a relationship link three or more entities?

我有一个具有六个属性的实体 employeesemployee_number(唯一键)、first_namelast_nameaddressphone_number,以及 hire_date。但是,有两种类型的员工:"Service Technicians" 和 "Sales Associates"。

每种不同类型的员工都有 "job specific" 属性。服务技术人员具有 model_expertisepager_number 属性,销售人员具有 commissionsalary 属性。

我不确定如何在 ER 图中表示它。我有一个列出了属性的 employees 实体,是否可以从 employeestechniciansassociates 建立关系?像 is_type 这样的关系:可以 link 一个实体到两个这样的实体的关系吗?

如果不是,怎么办?

你们有一段经典的 subtype/supertype 关系。原始的 ER 符号没有针对这种情况的特定符号,尽管可以将子类型表示为没有弱键的弱实体。 ER 模型的许多扩展被开发来解决这个问题。这是一个例子:

圆圈中的 d 表示不相交的子类型,这意味着 Employee 可以是 TechnicianAssociate,但不能两者兼而有之。另一个选项是 o 用于重叠。

但是,不要将您的 supertype/subtype 关系与三向关系混淆。相反,最好将其视为 2 个二元关系,不相交是一种相互制约。真正的 3 向(和更高)关系(例如供应商、零件和区域之间的 many-to-many-to-many 关联)在 ER 图中当然是可能的。这是区分 ER 模型和旧网络数据模型的特征之一。