2013-05-14 3 views
0

У меня есть таблица «Люди» (ID, Имя)MySQL: Добавление связей между людьми

1, George 
2, Nick 
3, John 
4, Paul 

Каждый клиент может быть подключен к другому клиенту (только для справки) Например Джордж связан с Павлом

Так я создаю новую таблицу PeopleConnections (PeopleConnectID, PeopleID, ConnectedID)

и добавляю отношения между людьми

1, 1, 4 (George with Paul) 
1, 2, 3 (Nick with John) 
1, 2, 4 (Nick with Paul) 

Мне нужно отобразить все отношения внутри вида записи записи. Так

  • Ник должен показывать: John, Paul
  • Пол должен показывать: George, Nick
  • Джон должен показывать: Nick

Это правильный дизайн справиться с этим? Какие внешние ключи следует добавить?

ответ

1

Это отношение many-to-many и это правильный дизайн, на мой взгляд. Ваши внешние ключи должны быть вашими ID от People. Вы уже ответили на это в этой части.

0

Да, ваш дизайн в целом подходит. Вы должны установить ограничения внешнего ключа для PeopleConnections.PeopleID и PeopleConnections.ConnectedID. Оба из них должны ссылаться на People.PeopleID.

Вы также можете установить уникальное ограничение для совокупности PeopleConnections.PeopleID и PeopleConnections.ConnectedID, чтобы предотвратить дублирование отношений.

Смежные вопросы