Xwab
Форумыnavigate_nextПрограммирование на PHP

Друзья (Архитектура)
Сообщения
reebest

Нужно организовать модуль друзей на сайт функционал пока минимальный добавление/удаление. Так вот, как лучше организовать архитектуру таблицы? Пока в голову приходит только два поля id_f1 и id_f2 . В первое записывать кто добавляет, во второе кого добавляют, а получать список через OR т.е. id_f1 = :id_user or id_f2 = :id_user. Может решение по лучше?

04 Апр 2012, 14:06
IceJOKER

Записываешь ид одного и ид другого

04 Апр 2012, 14:39
reebest

IceJOKER, ну тоже самый вариант я описал в первом посте. Но вот интересно, может есть еще способы

04 Апр 2012, 15:23
exelente

я немного не так делал. Структура:
айди 1 юза и айди 2 юза, ячейка назовем ее agree. Дадим ей intval значение. Затем, добавляем в други, делаем в базе insert но при этом agree ставим значение 0. Затем идет проверка на вывод из базы есть ли записи где айди2 юза имеет мой айди, а agree=0. если есть, значит выводим, это как заявка. Если соглашаемся, то в этой табле апдейтим agree = 1 и инсертом создаем такую же таблу, но с обратнъми значениями. Айди1 юз равен другу, айди2 юз равен тебе)
добавлено спустя 1 минуту:
блин прочитал что написал, и сам запутался) хд. Могу структуру таблы показать

04 Апр 2012, 16:10
reebest

exelente пишет:
"я немного не так делал. Структура:
айди 1 юза и айди 2 юза, ячейка назовем ее agree. Дадим ей intval значение. Затем, добавляем в други, делаем в базе insert но при этом agree ставим значение 0. Затем идет проверка на вывод из базы есть ли записи где айди2 юза имеет мой айди, а agree=0. если есть, значит выводим, это как заявка. Если соглашаемся, то в этой табле апдейтим agree = 1 и инсертом создаем такую же таблу, но с обратнъми значениями. Айди1 юз равен другу, айди2 юз равен тебе)
добавлено спустя 1 минуту:
блин прочитал что написал, и сам запутался) хд. Могу структуру таблы показать"

не нужно, я понял, благодарю. Если больше не найду вариантов лучше, буду использовать этот.

04 Апр 2012, 16:17
exelente

reebest, окей)) Если что. знаешь как меня найти

04 Апр 2012, 17:57
Istsam

Записывай id того кто кинул заявку, и кому кинули заявку. потом в запросе по ебаться придётся, с выводом ссылок, подобных "Удалить из друзей","Личное сообщение" еслим есть ещё настройки приватности.
А вообще, дання архитектра не идеальна. Может реально, кто то предложит более лучшую?

06 Апр 2012, 10:26
Fuelen

user1, user 2, follow, statement.
id intval, id inrval, 0 or 1 intval, 0 or 1 intval соответственно
Если фоллов равно 1, то первый юзер подписан на второго. тут же, если statement = 1, то показываем заявку второму юзеру про нового друга, если 0 — нет. Когда второй юзер принимает заявку, то добавляем запись, что второй подписан на первого и значения поля для заявки ставим в 0 для обоих значений.
Типа как вконтакте

06 Апр 2012, 11:44
Веселье

юзаю обычно такую же систему, как и у #4.

мороки много. наверное, у меня фантазии не хватает что-то придумать особенное)

06 Апр 2012, 20:59
iceman12

У Fuelen самая правильная архитектура, имхо.

06 Апр 2012, 21:03
Ответить на тему