简体   繁体   中英

MySQL: non-subordinative self relationship

Usually in self realtionship tutorials it is taught in a subordinative way. Eg.: employee X subordinated to employee Y.

I have this scenario bellow where the related players are actually the same person but with different accounts.

So I don't know whether this is right to use self relationship in this case.

(aka: also known as)

aka_id ----> id_player

One player account is not subordinated to another. Players can have multiple accounts but I'm willing to relate them so I can tell they belong to the same person. In the real scenario, there is no master account to relate them to. this is a NON-SUBURDINATIVE scenario.

在此处输入图片说明

I thought of not using relationship in this case and insert a random hash key tag to the aka column:

380 | player120 | ae65a3f01a
500 | player430 | ae65a3f01a

The question here is:

Is it right to use self relationships in non-subordinative scenarios?

From the way you describe the problem, you have two entities: players and aka (which I will call nicknames). These are two separate entities, and that usually suggests three tables:

  • Players
  • Nicknames
  • PlayerNicknames

The third table is a junction table that combines the first two. You might be able to put all the information you need about Nicknames in PlayerNicknames -- that is fine. However, if you have a requirement that all nick names be unique, then you definitely want a third table.

My guess is that you have a player name that is automatically a nick name. Great. When you create a player, also create an entry in the nicknames.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM