powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Юзеры - Друзья. Какая связь?
50 сообщений из 50, показаны все 2 страниц
Юзеры - Друзья. Какая связь?
    #35290002
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица users. И есть таблица friends, которая должна быть такого вида:

+--------------------------+
| USER_ID | FRIEND_ID |
+--------------------------+
| 1110001 | 1110002 |
| 1110001 | 1110004 |
| ........... | ........... |
+--------------------------+

Т.е. получается слева перечисление пользователей, а справа их друзей.
Так вот какая свзяь будет с основной таблицей юзеров?
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35290009
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вообще, может проще отдельную таблицу не создавать, а сделать доп.столбец в таблице users?
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35290908
Илья Корстин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Френды тоже из списка пользователей?
Если да, то
- еще одна таблица связей пользователей, таблица френдов не нужна. Поля в таблице связи:
-- ID_USER_1 (FK на USERS)
-- ID_USER_2 (FK на USERS)
-- можно дополнительный признак (друг или враг например)

И все
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35291106
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно ли я понял, что помимо таблицы users будет ещё обна таблица, гед столбцы ID_USER_1 и ID_USER_2, при этом получается связь один-ко-многим. верно?
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35291111
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man.without.faceПравильно ли я понял, что помимо таблицы users будет ещё обна таблица, гед столбцы ID_USER_1 и ID_USER_2, при этом получается связь один-ко-многим. верно?

не совсем... с помощью дополнительной таблицы у вас описывается связь многие-ко-многим
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35291124
В идеале у Вас должно быть 3 таблицы, чтобы разбить связь "много-ко-многим"
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35291130
гмм...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Слишком простая структура.

Непонятно как:
* найти всех друзей 3-го уровня для данного юзера
* сформировать цепочку(и) по которой связаны два юзера
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35291809
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гмм...Непонятно как:
* найти всех друзей 3-го уровня для данного юзера
* сформировать цепочку(и) по которой связаны два юзера
Вам непонятно, как это сделать одним запросом, или Вам непонятно, как это в принципе при подобной структуре можно сделать (фактически, Вы утверждаете, что это сделать нельзя)?
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35292883
гмм...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей ВаскецовВам непонятно, как это сделать одним запросом, или Вам непонятно, как это в принципе при подобной структуре можно сделать (фактически, Вы утверждаете, что это сделать нельзя)?Мне непонятно, как это сделать быстро и эффективно. Т.е. теоретически можно вырыть яму и чайной ложкой, но разумнее взять лопату.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35296882
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гмм...Мне непонятно, как это сделать быстро и эффективно. Т.е. теоретически можно вырыть яму и чайной ложкой, но разумнее взять лопату.
Эффективно в соответствии с каким критерием?
Впрочем, свой вариант не хотели бы предложить?
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35297062
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гмм...Мне непонятно, как это сделать быстро и эффективно. Т.е. теоретически можно вырыть яму и чайной ложкой, но разумнее взять лопату.Заведите для каждого юзера отдельную таблицу.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35297930
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель гмм...Мне непонятно, как это сделать быстро и эффективно. Т.е. теоретически можно вырыть яму и чайной ложкой, но разумнее взять лопату.Заведите для каждого юзера отдельную таблицу.

С ума сошли?
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35300513
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель гмм...Мне непонятно, как это сделать быстро и эффективно. Т.е. теоретически можно вырыть яму и чайной ложкой, но разумнее взять лопату.Заведите для каждого юзера отдельную таблицу.

На каждого юзера завести таблицу "врагофф"...))) почему нихто не предлагает?

Табличка ссылаится сама на сибя... о как..)
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35300903
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вот.... пошёл флуд и ничего полезного....
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302364
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле интересная задача.

Если я тебе друг, то ты мне тоже? или как? Связь то - двунаправленная.
И, по идее должно быть на каждую пару друзей - по две записи))
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302496
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanНа самом деле интересная задача.
Если я тебе друг, то ты мне тоже? или как? Связь то - двунаправленная.
Я так предполагаю необходимо подтверждение того, что этот человек является другом.

gardenmanИ, по идее должно быть на каждую пару друзей - по две записи))
Дык получается таблица в которой грубоговоря в левом столбце тот кто добавил, а справо тот, кого добавили. И ниже строка обратная. Что-то вроде этого:

+--------------------+
|USER_ID | FRIEND_ID|
+--------------------+
| 1110001 | 1110002 |
| 1110002 | 1110001 |
+--------------------+
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302509
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man.without.faceИ ниже строка обратная
Это еще зачем?
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302516
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык для второго пользователя первый тоже будет являться другом. Ну или делать "пробег" по обоим столбцам.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302543
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man.without.faceДык для второго пользователя первый тоже будет являться другом
1. Это далеко не очевидно. Подумайте, что должно произойти в случае удаления дружбы.
2. Фиксировать надо связь , а не дружбу. Дружба в рамках топика - это не наличие связи, а ее интерпретирование. По логике, я могу дружить только с теми, кого сам считаю другом, могу с теми, кто считает другом меня, могу дружить с обеими категориями, могут быть и прочие варианты, например, все мои земляки. Хранить надо связь, причем так, чтобы было понятно, кто инициатор связи.
3. Можно делать предложение о "встречной" дружбе, в случае положительного решения на которое создавать "встречную" строку, которая при возможном удалении исходной строки останется.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302599
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хммм.... Интересно. а вот как это организовать?
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302634
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man.without.faceХммм.... Интересно. а вот как это организовать?
Если над опросто отображать всех, кто имеет отношение к дружбе - отображаете всех, на кого есть ссылка в списке друзей как в одну, так и в другую сторону. По идее, лучше отдельно отображать, типа "мои друзья", "со мной дружат", "друзья моих друзей",...
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302711
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и таким образом получится таблица с 4-мя столбцами...

хотя не понимаю смысл "со мной дружат". Как могут со мной дружить, а я с этими людьми не дружу.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302803
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man.without.faceну и таким образом получится таблица с 4-мя столбцами
Сама по себе связь требует 2 столбца, остальное зачем?

man.without.faceхотя не понимаю смысл "со мной дружат". Как могут со мной дружить, а я с этими людьми не дружу
Вы Путина знаете? А он Вас?
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302811
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов man.without.faceну и таким образом получится таблица с 4-мя столбцами
Сама по себе связь требует 2 столбца, остальное зачем?

USER_ID, FRIEND_ID, TYPE - 3 даже. :)

Сергей Васкецов
man.without.faceхотя не понимаю смысл "со мной дружат". Как могут со мной дружить, а я с этими людьми не дружу
Вы Путина знаете? А он Вас?
его знаю и он меня тоже. ;)

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

USER_ID, HUMAN_ID, TYPE - по сути тоже самое. TYPE - для указания типа знакоства: друг, знакомый, парень, дувушка, жена, муж и т.д...

Вроде так.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302852
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man.without.faceПусть даже он меня не знает, но я ведь с ним не дружу. Это уже несколько другое. Получается уже не связь дружбы, а речь о знакомых людях
Есть наличие связи (и ее тип, если хотите). Интерпретация ее, как я уже писал, дело десятое. Хотите - выделите для дружбы отдельный тип.

Кстати, некоторые связи совершенно ортогональны. Например, муж может быть как другом, так и нет, не говоря уже про жен в гареме. Также подумайте над тем, что связь может иметь вполне конкретный срок действия, а также что отсутствие связи не эквивалентно наличию ее отрицания (елси нет "друг", это еще не "недруг").
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302872
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чёрт... я начинаю запутываться. О_о
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302978
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Сергей Васкецов

Вот интересная у Вас ситуация получается.
Все связи оказываются однонаправленными.
Действительно в некотором виде это можно и так рассматривать.

А вот возьмем например половых партнеров. Будем вести базу тех, кто с кем спал.
Не получится ли так, что я .. с этой девушкой имел связь а она об этом .. не знает?...

Если вы будете настаивать на том что можно юзеров поделить по половому признаку,
типа - трахавшие и трахнутые... то ... как быть с голубыми.
Вобщем контрпримеров много можно привести.

Вывод - шаблоны хорошо, но подход должен быть индивидуальным.
Типа советую еще раз подумать))))
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302990
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче - графы бывают как ориентированные, так и неориентированные. И, возможно, смешанные. Типа это азбука. Определитесь с типом графа, и все станет на свои места.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302998
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanНе получится ли так, что я .. с этой девушкой имел связь а она об этом .. не знает?...
Вы путаете наличие связи и ее трактовку. В приципе, и процитированное в жизни может быть.

gardenmanможно юзеров поделить по половому признаку
Это еще тут зачем?

gardenmanВобщем контрпримеров много можно привести
Вы готовы привести хотя бы один приличный контрпример, когда связь, которая не может быть однонаправленной, обязательно хранить в БД как двунаправленную? Буквально так.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35302999
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да мне вот нужно как раз таки разобраться с друзьями. и как организовать эти связи
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35303003
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чуть запоздал. сорри.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35303010
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanВсе связи оказываются однонаправленными
В БД - да. Размножить запись и сделать "встречную" можно всегда. Обратное неверно.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35303093
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов
gardenmanВобщем контрпримеров много можно привести
Вы готовы привести хотя бы один приличный контрпример, когда связь, которая не может быть однонаправленной, обязательно хранить в БД как двунаправленную? Буквально так.

Пример:
Сидели за одной партой....
Ели из одной тарелки....

конечно можно ввести такую таблицу как "Тарелки" или "Парты")).. но мы ведь до этого маразма не дойдем, правда?

Друг - это такая личность которая знает что он друг и согласен с этим своим статусом и причем обратное тоже верно) такая вот дружба бывает. Правда редко.

Впрочем мысль... Если два FOREIGN KEY настроить на PRIMARY KEY, таким образом чтобы дважды нельзя было ввести пару | 0001 | 0002 |? Т.е. если | 0001 | 0002 | есть , то | 0002 | 0001 | уже получает отлуп)))

Подумайте, прикольно ведь...
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35303252
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanПодумайте, прикольно ведь...
ну в принципе да...
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35303303
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man.without.face gardenmanПодумайте, прикольно ведь...
ну в принципе да...

Попробовал. Не получается.) Ну да ладно...~~~
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35303309
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman man.without.face gardenmanПодумайте, прикольно ведь...
ну в принципе да...

Попробовал. Не получается.) Ну да ладно...~~~

Блин. Это фигово. Так и придётся что ли дважды ввести пару | 0001 | 0002 |....
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35303345
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man.without.face gardenman man.without.face gardenmanПодумайте, прикольно ведь...
ну в принципе да...

Попробовал. Не получается.) Ну да ладно...~~~

Блин. Это фигово. Так и придётся что ли дважды ввести пару | 0001 | 0002 |....
Повесь триггер. Пусть проверяет.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35303347
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или триггер AFTER INSERT путь добавляет симметричную пару.
А также триггер AFTER DELETE пусть удаляет что нужно)
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35303351
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да это можно и руками....
хотя триггер будет работать на уровне базы, поэтому собственно произодительность должна быть выше.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35303647
Hryuckinnen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решили социальную сеть написать? Надо было начинать год назад, сейчас были бы на коне.
Есть вариант проще, без симметричных пар.
1. Когда юзер 1 посылает юзеру 2 предложение дружить, оно повисает в специальной табличке wannabe_friends в виде |1|2|.
2. Если юзер 2 принимает предложение юзера 1, точно такая же запись создаётся в таблице friends, а если нет, значит, нет. В любом случае, запись из wannabe_friends удаляется.
3. Вместо этого юзер 2 может послать юзеру 1 встречное предложение. Перед тем, как помещать в wannabe_friends запись |1|2|, надо проверить, нет ли там уже записи |2|1|. Если она есть, такую же запись |2|1| надо создать в friends, а из wannabe_friends сбросить.

Как получить всех друзей юзера?
Код: plaintext
1.
2.
3.
SELECT friend_id FROM friends WHERE user_id  = @user_id
UNION
SELECT user_id FROM friends WHERE friend_id  = @user_id

Как получить всех друзей друзей юзера?
Код: plaintext
1.
2.
3.
SELECT friend_id FROM friends WHERE user_id IN (... тут предыдущий запрос ...)
UNION
SELECT user_id FROM friends WHERE friend_id IN (... тут предыдущий запрос ...)

Как получить всех друзей друзей друзей юзера?
Код: plaintext
1.
2.
3.
SELECT friend_id FROM friends WHERE user_id IN (... тут предыдущий запрос ...)
UNION
SELECT user_id FROM friends WHERE friend_id IN (... тут предыдущий запрос ...)

Т.е. фактически так же. Можно написать рекурсивную хранимку, которая вызывает сама себя столько раз, сколько уровней друзей нужно найти, а на самом глубоком уровне выполняет первый из показанных запросов.

ЗЫ: В этой модели ничто не мешает юзеру дружить с самим собой. Хотя программный код (не SQL), который будет рекурсивно обходить список друзей юзера, может от этого и вывалиться.

ЗЫЗЫ: Я не профессиональный SQLщик, просто балуюсь. Все советы предоставлены AS IS, без каких-либо гарантий, даже без подразумеваемой гарантии того, что предоставленные запросы будут работать и что-либо делать. Я снимаю с себя всякую ответственность за любой ущерб, причинённый кому-либо в результате следования предоставленным советам. Читая даный пост, Вы автоматически принимаете условия данного лицензионного соглашения.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35303648
Hryuckinnen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫЗЫЗЫ: Пункт 3 следует читать так:
3. Вместо этого юзер 2 может послать юзеру 1 встречное предложение. Перед тем, как помещать в wannabe_friends запись |1|2|, надо проверить, нет ли там уже записи |2|1|. Если она есть, запись |1|2| в wannabe_friends создавать не надо. Вместо этого запись |2|1| надо создать в friends, а из wannabe_friends сбросить.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35303667
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно. Не мучтесь. В правильном решении должно быть три таблицы.
1) Люди
2) Дружбы
3) Связи между дружбами и людьми


Код: plaintext
1.
2.
3.
4.
5.
create table person (
    person_id int not null,
    primary key (person_id),
    ...
)

Код: plaintext
1.
2.
3.
4.
5.
create table friendship (
    friendship_id int not null,
    primary key (friendship_id),
    ...
)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create table friendship_person_xref (
    person_id not null,
    friendship_id int not null,
    primary key (friendship_id,person_id), -- чтобы дружба могла заводиться тока один раз и не было дубликатов
    foreign key на person,
    foreign key на friendship
    ...
)

В такой струтуре можно дружить не только по двое, но и одномуЮ и по три , ит.д)

На самом деле это паттерн. Прсто надо знать как такое делается.
Есть еще задачи аналогичные этой.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35304273
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HryuckinnenРешили социальную сеть написать? Надо было начинать год назад, сейчас были бы на коне.

Решили. :) Только аналогов не имеет ни одна социальная сеть. ;)
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35304279
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanНа самом деле это паттерн. Прсто надо знать как такое делается.
Есть еще задачи аналогичные этой.

Я не проектировщик или не БДшник, поэтому паттернов, о которых вы говорите - не знаю. Я программист, просто надо...

Спасибо вам, gardenman , большое.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35308927
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanПример:
Сидели за одной партой....
Ели из одной тарелки....
Ошибаетесь. Некто А утверждает, что "мы сидели с Б за одной партой". В свою очередь Б утверждает, что "мы не сидели с А за одной партой". Оба имеют право на подобные высказывания. Связи - суть высказывания, у них есть автор. Вы же фактически утверждаете, что отношение лиц, участвующих в связи, к этой связи может быть только одинаковым, что неверно.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35308934
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanЛадно. Не мучтесь. В правильном решении должно быть три таблицы
Это уже клуб по интересам, а не дружба.
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35310125
Фотография BrigadeFuhrer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут вожможно 2 вида связи
1. Друзья пользователя не тоже самое что и в "друзьях у" по аналогии с ЖЖ
2. Друзья пользователя - тоже самое что и в "друзьях у" по аналогии с "одноклассниками"

1. USER_ID | FRIEND_ID

2. USER_ID1 | USER_ID2 столбцы равнозначны, тоесть
1110001 | 1110002 то же что и
1110002 | 1110001
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35452968
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так какое решение правильное? =)
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35458866
Фотография GamePro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто то сказал завести отдельную таблицу.. Вы что с ума сошли? этож очень долго и нудно.. нет я бы так не сделал.. Вот вы совет дали!
...
Рейтинг: 0 / 0
Юзеры - Друзья. Какая связь?
    #35458873
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я сделал в итоге так:

=======================================
friends - список друзей пользователя.
----------------------------------------------------------------------
ID - ...
userID - сам пользователь (ID)
friendID - ID друга.

=======================================
friends_flags - пользователи, ещё не подтвердившие
дружбу, сначала попадают в эту таблицу.
----------------------------------------------------------------------
ID - ...
userID - сам пользователь (ID)
friendID - ID друга.
flag - если false, то пользователь ещё не подтвердил
дружбу. если true, то пользователь удаляется из
данной таблицы и попадает в таблицу friends, как
друг.
=======================================
...
Рейтинг: 0 / 0
50 сообщений из 50, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Юзеры - Друзья. Какая связь?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]