Форум → Разработка → Базы данных → Реализация взаимооотношений пользователей.
Реализация взаимооотношений пользователей.
-
Такой вопрос возник при размышлениях на досуге. Как организована система контроля взаимоотношений пользователей в социальных сетях на уровне базы данных. Конечно, реализации могут разниться, но в целом существует определенный наиболее рациональный шаблон.
Вариант, где для текущего id вписываются через разделитель id пользователей в такие поля как friend_list, black_list и прочее, а потом при выводе парсятся, сразу отпал, ибо это индусский подход.
Видется наиболее рациональным введение таблички вида:
User1_id User2_id User1_stat User2_stat
1 2 1 1
1 3 1 1
1 4 1 0
1 5 0 1
2 3 1 0
и т.д.
Тогда выборка друзей пользователя ID 1 сводилась бы к SELECT User2_id FROM user_relations WHERE user1_id=1 AND USER2_id<>1 AND User1_stat=1 AND User2_stat=1
А выборка черного списка сводилась бы к такому SELECT User2_id FROM user_relations WHERE user1_id=1 AND USER2_id<>1 AND User1_stat=2
При условии, что, например 1 - статус добавленного в друзья, 0 - статус запроса в друзья, 2 - статус черного списка.
Насколько мой подход правильный? -
17 июля 2011 г. 15:59, спустя 2 часа 7 минут 28 секунд
Насколько мой подход правильный?
про тип связей "многие-ко-многим" читал?не всё полезно, что в swap полезло -
18 июля 2011 г. 14:54, спустя 22 часа 54 минуты 49 секунд
Насколько мой подход правильный?
мне нравится сама суть вопроса))
Пожалуйста, авторизуйтесь, чтобы написать комментарий!