Hierarchical relationships on the User object
Key Takeaway
To link a user to another user, use a hierarchical relationship. To link a record on another object to a user, use a regular lookup relationship.
Salesforce has a third relationship type besides lookup and master-detail: the hierarchical relationship. It is a special type of lookup relationship that uses a lookup field to link one user to another user. You use it to model links between users, such as management chains.
Why hierarchical relationships exist
A self-lookup is a regular lookup relationship that links an object with itself, such as a Bug custom object linked to other bugs. The User object is the exception: it can't use a regular lookup relationship to itself. For a user-to-user relationship, you use a hierarchical relationship instead.
The main difference between a hierarchical relationship and a regular lookup relationship is that a hierarchical relationship is available only on the User object.
For example, you can create a custom hierarchical relationship field to store each user's direct manager. Each user then links to their direct manager, and those links build a management chain between users.