ФорумРазработкаБазы данных → Реализация взаимооотношений пользователей.

Реализация взаимооотношений пользователей.

  • armageddance

    Сообщения: 29 Репутация: N Группа: Кто попало

    Spritz 17 июля 2011 г. 5:52

    Такой вопрос возник при размышлениях на досуге. Как организована система контроля взаимоотношений пользователей в социальных сетях на уровне базы данных. Конечно, реализации могут разниться, но в целом существует определенный наиболее рациональный шаблон.

    Вариант, где для текущего 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

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 17 июля 2011 г. 7:59, спустя 2 часа 7 минут 28 секунд

    Насколько мой подход правильный?

    про тип связей "многие-ко-многим" читал?
    не всё полезно, что в swap полезло
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 18 июля 2011 г. 6:54, спустя 22 часа 54 минуты 49 секунд

    Насколько мой подход правильный?

    мне нравится сама суть вопроса))

Пожалуйста, авторизуйтесь, чтобы написать комментарий!