关系可以链接三个或更多实体吗?

时间:2017-02-07 03:37:05

标签: database entity-relationship

我有一个实体employees,其中包含六个属性:employee_number(唯一键),first_namelast_nameaddressphone_number,和hire_date。但是,有两种类型的员工:"服务技术人员"和"销售人员"。

每个不同类型的员工都有"特定职位"属性。服务技术人员具有model_expertisepager_number属性,销售人员具有commissionsalary属性。

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

如果没有,怎么回事?

enter image description here

1 个答案:

答案 0 :(得分:1)

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

EER subtype example

圈子中的d表示不相交的子类型,这意味着Employee可以是TechnicianAssociate,但不能同时为opublic function clear_unconfirmed_post() { $this->db->where('code is NOT NULL', NULL, FALSE); $this->db->where('date_modified < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 15 MINUTE))', NULL, FALSE); $this->db->delete($this->db->dbprefix . 'post'); } 。另一个选项是public function __construct() { parent::__construct(); $this->load->model('catalog/forum/newthread_model'); $this->newthread_model->clear_unconfirmed_post(); } 重叠。

但是,不要将您的超类型/子类型关系与3向关系混淆。相反,它最好被视为2个二元关系,不相交是一个相互约束。在ER图中,确实可以实现真正的三向(和更高)关系(例如供应商,零件和区域之间的多对多关联)。这是区分ER模型和旧网络数据模型的功能之一。