Как представить отношения между собой в rdbms?

StackOverflow https://stackoverflow.com/questions/1429980

  •  07-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

но мне это кажется странным.

Спасибо

Саймон

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

Это было полезно?

Решение

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

user_id | follower_id

Вот и все.возьмем, к примеру, пользователя №56.

у него, вероятно, были бы такие строки в таблице подписчиков:

56 | 53453
56 | 323
56 | 463

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

Другие советы

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

RelationshipId    Follower Target
Int               Int      Int

Где Follower — это идентификатор пользователя UserA, а Target — это идентификатор пользователя UserB, а UserA следует за UserB.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top