Модель данных для социальной сети?

Если бы я хотел создать сайт, который позволял бы пользователям иметь 0 или более «друзей», как бы я смоделировал такие отношения в базе данных? Сработало бы что-нибудь такое простое:

Table Friends
- Id (PK)
- UserId (FK)
- FriendId (FK)

?? ?

Позволит ли это мне в дальнейшем делать то, что делает Facebook (например, «3 ваших друга знают этого пользователя, может быть, и вы тоже»)? Или что-то вроде 6-градусной шкалы Кевина-Бэкона?

РЕДАКТИРОВАТЬ 1:

Table Friends
- UserId (FK)
- FriendId (FK)
- Status ('Pending', 'Approved', 'Rejected', 'Blocked'?)
8
задан StackOverflowNewbie 14 November 2010 в 13:12
поделиться