powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / модель БД для социальной сети
19 сообщений из 19, страница 1 из 1
модель БД для социальной сети
    #37587626
myWestern
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересует логическая модель БД для стандартной социальной сети, где каждый пользователь имеет друзей, и общую информацию о себе.

Какие должны быть таблицы и связи между ними?
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37587665
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myWesternИнтересует логическая модель БД для стандартной социальной сети, где каждый пользователь
имеет друзей, и общую информацию о себе.

Какие должны быть таблицы и связи между ними?

Таблица пользователей и таблица дружбы. Всё. В логической модели - сущность "пользователь"
и связь "многие-ко-многим" на себя.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37588184
myWestern
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

| Пользователь| | ДРУГ |
|____________| <------->> | ______|
| id_пользов. | | id_друг|
| ИМЯ | | id1 |
| ФАМИЛИЯ | | id2 |
_____________ ________

где, id1 и id2 это ключи таблицы "Пользователь".

Верно я понимаю?
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37588444
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myWestern,

table1 (user_id, name, phone, ...)
table2 (user_id)
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37588463
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клава за мыслями неуспевает. В первой таблице пользователи. Во второй ид пользователя и ид друга (из той же, первой, таблицы).
Код: sql
1.
2.
table1 (user_id, name, phone, ...)
table2 (user_id, friend_id)
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37589258
myWestern
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда такой вопрос, как убрать избыточность? к примеру во второй таблице будет:
1 : 2
1 : 3
1 : 4
2 : 1

То есть записи 1:2 и 2:1 по сути являются равнозначными. Какой здесь выход? Проверять на наличие отношения перед внесением записи в таблицу друга или есть другие механизмы?
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37589271
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myWesternТо есть записи 1:2 и 2:1 по сути являются равнозначными.

Нет, не являются. Если Вася Пупкин считает своим другом Дмитрия Медведева, то это ещё не
значит что Медведев вообще о существовании Васи знает.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37589332
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myWesternТо есть записи 1:2 и 2:1 по сути являются равнозначными.
Если Вас это напрягает, то проще всего наложить check (id_1 < id_2). Но эту функциональность надо продумывать не просто так, а в совокупности, поскольку ей придётся обслуживать ситуации типа "Вася добавил Петю, Петя Васю не добавил", "Вася добавил Петю, Петя должен увидеть это и возможно нажать в ответ", "Вася удалил ранее сделанную дружбу с Петей, что делать с Петиной" итп.
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37589341
myWestern
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну ведь в соц сетях так и есть, если у Васи есть в друзьях Медведев т ои у Медведева есть в друзьях Вася. Или я что-то путаю?
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37589398
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myWesternИли я что-то путаю?
Путаешь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37589662
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myWestern,

Эт смотря в каких сетях. В правильных такого быть неможет. А в криворуких и не такое увидишь.
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37589749
myWestern
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот одноклассники. Не может быть такого чтобы у меня в списке был Вася, а у Васи не будет меня! Если я Васе предлагаю дружбу и Вася ее одобряет, то мы становимся друзьями, иначе быть не может. Отсюда следует вывод, что друзьями между двумя пользователями считаются те пользователи, которые имеют ссылку друг на друга в своем списке друзей.

Или я вообще уже с головой не дружу?
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37589765
andy.s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
myWestern,

К чему этот спор? Нет тут никакой избыточности, самое обычное отношение многие-ко-многим. Наверняка в этой таблице появятся еще поля. Например, поле "предложение дружбы подтверждено", т.е. Вася предложил дружбу Пете, но тот еще не одобрил. Если будет неупорядоченная пара id хранится, то станет не понятно, кто кому дружить предложил. В общем, примеров много можно привести, когда порядок имеет значение, так что не стоит озадачивать себя этими мыслями :)
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37589776
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myWestern,

Что мне сказать в ответ? Скажу правду - обидишся, соврать - сам обижусь. Эх ... Пошлюка я тебя. Иди читай мануалы. Когда достигнешь нирваны - узришь истину.
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37589778
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myWesternОтсюда следует вывод, что друзьями между двумя пользователями считаются те пользователи,
которые имеют ссылку друг на друга в своем списке друзей.

Ну хорошо, раз тебе не нравится эта избыточность, возьми и удали "лишние" связи. А потом
напиши SQL запрос поиска всех друзей заданного пользователя. Посмотри сколько он будет
выполняться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37590632
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myWesternНу вот одноклассники. Не может быть такого чтобы у меня в списке был Вася, а у Васи не будет меня!
Ну, допустим, не может.

myWestern Если я Васе предлагаю дружбу
Одним из вариантов технической реализации такого предложения является вставка связи Вы -> Вася.

myWestern и Вася ее одобряет,
Одним из вариантов реализации такого одобрения является вставка связи Вася -> Вы.
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37605302
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myWesternНу вот одноклассники. Не может быть такого чтобы у меня в списке был Вася, а у Васи не будет меня! Если я Васе предлагаю дружбу и Вася ее одобряет, то мы становимся друзьями, иначе быть не может. Отсюда следует вывод, что друзьями между двумя пользователями считаются те пользователи, которые имеют ссылку друг на друга в своем списке друзей.

Или я вообще уже с головой не дружу?

Не знаю, как там в Одноклассниках, а в ЖЖ вполне может быть ситуация, что пользователь меня добавил в друзья, а я его посмотрел, и решил - такой друг мне не нужен - и не стал добавлять.

Я -> друг Васи
Вася - > МНЕ никто.
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37605317
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryiНе знаю, как там в Одноклассниках, а в ЖЖ вполне может быть ситуация, что пользователь меня добавил в друзья, а я его посмотрел, и решил - такой друг мне не нужен - и не стал добавлять.

Я -> друг Васи
Вася - > МНЕ никто.
Потому что, это два разных принципа!
В одном случае "дружба" - это обоюдное подтверждение. Иначе, до одобрения предложения - это ПРЕДЛОЖЕНИЕ дружбы.
В другом случае "дружба" - это как контакт в аське - односторонняя вещь.
...
Рейтинг: 0 / 0
модель БД для социальной сети
    #37605318
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрmyWestern,

Эт смотря в каких сетях. В правильных такого быть неможет.
По-моему ни один вариант нельзя назвать правильным или нет. Это разные варианты.

А вот автор пусть опредлится - какой ему нужен.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / модель БД для социальной сети
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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