# Recursive Relationships in ER diagrams

Prerequisite – ER Model

A relationship between two entities of similar entity type is called a **recursive** relationship. Here the same entity type participates more than once in a relationship type with a different role for each instance. In other words, a relationship has always been between occurrences in two different entities. However, it is possible for the same entity to participate in the relationship. This is termed a **recursive** relationship.

**Example –**

Let us suppose that we have an employee table. A manager supervises a subordinate. Every employee can have a supervisor except the CEO and there can be at most one boss for each employee. One employee may be the boss of more than one employee. Let’s suppose that REPORTS_TO is a recursive relationship on the Employee entity type where each Employee plays two roles

- Supervisor
- Subordinate

Supervisor and Subordinate are called **“Role Names”**. Here the degree of the REPORTS_TO relationship is 1 i.e. a unary relationship.

- The minimum cardinality of Supervisor entity is ZERO since the lowest level employee may not be a manager for anyone.
- The maximum cardinality of Supervisor entity is N since an employee can manage many employees.
- Similarly the Subordinate entity has a minimum cardinality of ZERO to account for the case where CEO can never be a subordinate.
- It maximum cardinality is ONE since a subordinate employee can have at most one supervisor.

**Note –** Here none of the participants have a total participation since both minimum cardinalities are Zero. Hence, the relationships are connected by a single line instead of a double line in the ER diagram.

To implement a recursive relationship, a foreign key of the employee’s manager number would be held in each employee record. A Sample table would look something like this:-

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)

This article is contributed by **Siddhant Bajaj 2**. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

## Recommended Posts:

- Attributes to Relationships in ER Model
- Minimization of ER Diagrams
- Weak Entity Set in ER diagrams
- Discrete Mathematics | Hasse Diagrams
- Total Recursive Functions and Partial Recursive Functions in Automata
- Recursive Descent Parser
- Algorithm for non recursive Predictive Parsing
- MySQL | Recursive CTE (Common Table Expressions)
- JDBC Using Model Object and Singleton Class
- Conversion of Binary number to Base 4 system
- How To Develop A Standard SQL Suite For A Robust Streaming Process?
- Difference between First Come First Served (FCFS) and Round Robin (RR) Scheduling Algorithm
- Ackermann Function
- Stack machine in Computer Organisation