先决条件 – ER 模型
两个实体类型相似的实体之间的关系称为递归关系。在这里,相同的实体类型不止一次参与关系类型,每个实例都有不同的角色。换句话说,关系始终存在于两个不同实体中的事件之间。但是,同一实体可以参与该关系。这被称为递归关系。
例子 –
让我们假设我们有一个员工表。经理监督下属。除了CEO之外,每个员工都可以有一个主管,每个员工最多可以有一个老板。一名员工可能是一名以上员工的老板。让我们假设 REPORTS_TO 是 Employee 实体类型的递归关系,其中每个 Employee 扮演两个角色。
- 导师
- 下属
主管和下属被称为“角色名称” 。这里 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)