Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / модель БД для социальной сети / 19 сообщений из 19, страница 1 из 1
21.12.2011, 18:58
    #37587626
myWestern
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
модель БД для социальной сети
Интересует логическая модель БД для стандартной социальной сети, где каждый пользователь имеет друзей, и общую информацию о себе.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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