📜  ER 图中的递归关系

📅  最后修改于: 2021-09-27 14:47:04             🧑  作者: Mango

先决条件 – ER 模型
两个实体类型相似的实体之间的关系称为递归关系。在这里,相同的实体类型不止一次参与关系类型,每个实例都有不同的角色。换句话说,关系始终存在于两个不同实体中的事件之间。但是,同一实体可以参与该关系。这被称为递归关系。

例子 –
让我们假设我们有一个员工表。经理监督下属。除了CEO之外,每个员工都可以有一个主管,每个员工最多可以有一个老板。一名员工可能是一名以上员工的老板。让我们假设 REPORTS_TO 是 Employee 实体类型的递归关系,其中每个 Employee 扮演两个角色。

  1. 导师
  2. 下属

主管和下属被称为“角色名称” 。这里 REPORTS_TO 关系的度数是 1,即一元关系。

  • Supervisor 实体的最小基数为零,因为最低级别的员工可能不是任何人的经理。
  • Supervisor 实体的最大基数是 N,因为一个员工可以管理多个员工。
  • 类似地,下属实体的最小基数为零,以解决 CEO 永远不能成为下属的情况。
  • 它的最大基数是 ONE,因为下属员工最多可以有一个主管。

注意——这里没有一个参与者完全参与,因为两个最小基数都是零。因此,关系在 ER 图中由单线而不是双线连接。

为了实现递归关系,员工经理编号的外键将保存在每个员工记录中。示例表如下所示:-

Emp_entity( Emp_no,Emp_Fname, Emp_Lname, Emp_DOB, Emp_NI_Number, Manager_no);

Manager no - (this is the employee no of the employee's manager)