Если бы я хотел создать сайт, который позволял бы пользователям иметь 0 или более «друзей», как бы я смоделировал такие отношения в базе данных? Сработало бы что-нибудь такое простое:
Table Friends
- Id (PK)
- UserId (FK)
- FriendId (FK)
?? ?
Позволит ли это мне в дальнейшем делать то, что делает Facebook (например, «3 ваших друга знают этого пользователя, может быть, и вы тоже»)? Или что-то вроде 6-градусной шкалы Кевина-Бэкона?
РЕДАКТИРОВАТЬ 1:
Table Friends
- UserId (FK)
- FriendId (FK)
- Status ('Pending', 'Approved', 'Rejected', 'Blocked'?)