powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Юзеры - Друзья. Какая связь?
25 сообщений из 50, страница 1 из 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
25 сообщений из 50, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Юзеры - Друзья. Какая связь?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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