Как изобразить отношение «я к себе» в rdbms? - PullRequest
0 голосов
/ 16 сентября 2009

Надеюсь, это глупый вопрос, но мой мозг зажжен, и я не могу придумать, как это сделать прямо сейчас.

Я бездельничаю, пытаясь создать социальную сеть, и мне нужно будет отслеживать "последователей" человека. У меня уже есть пользовательская таблица, но как мне представить идею, что пользователи связаны друг с другом? Между прочим, это односторонние отношения, поэтому, если человек a «любит» человека b, обратное не обязательно верно.

Единственное, о чем я могу думать, это таблица, в которой есть только один-один список отношений, поэтому:

user a -> user b  
user a -> user c  
user a -> user d  
user b -> user d  
user b -> user c  
...  

но мне кажется, что это не так.

Спасибо

Simon

edit: возможно, подписчик в твиттере больше похож на то, что я пытаюсь сделать

Ответы [ 2 ]

1 голос
/ 16 сентября 2009

Создайте таблицу, содержащую только информацию идентификатора подписчика, например:

user_id | follower_id

Так и должно быть. возьмем, к примеру, пользователя # 56.

он, вероятно, будет иметь такие строки в таблице последователей:

56 | 53453
56 | 323
56 | 463

Просто добавьте уникальное ограничение на оба столбца, чтобы он не мог дружить с кем-то дважды.

0 голосов
/ 16 сентября 2009

Возможно, таблица выглядит так:

RelationshipId    Follower Target
Int               Int      Int

Где Follower является идентификатором пользователя A, а Target - это идентификатор пользователя B, а пользователь A следует за пользователем B.

...