Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 25 Май, 2012, 01:38:45

Страниц: [1]
Печать
Автор Тема: Реализация взаимооотношений пользователей.  (Прочитано 516 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
armageddance    ↓ 
17 Июль, 2011, 01:52:25
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 29
Сила слова: 0

Такой вопрос возник при размышлениях на досуге. Как организована система контроля взаимоотношений пользователей в социальных сетях на уровне базы данных. Конечно, реализации могут разниться, но в целом существует определенный наиболее рациональный шаблон.
 
Вариант, где для текущего 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 - статус черного списка.
 
Насколько мой подход правильный?
Записан
master    ↓ 
17 Июль, 2011, 03:59:53 , спустя 2 часа 7 минут 28 секунд
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

Насколько мой подход правильный?
про тип связей "многие-ко-многим" читал?
Записан

krasun    ↓ 
18 Июль, 2011, 02:54:42 , спустя 22 часа 54 минуты 49 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи
Группа: Джедаи

Карма: 41
Сообщений: 1379
Сила слова: 2.97

Насколько мой подход правильный?
мне нравится сама суть вопроса))
Записан
Страниц: [1]
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd