Дизайн базы данных для сайта социальной сети. Помогите! - PullRequest
0 голосов
/ 29 июня 2011

Я ищу решение для разработки таблицы (с использованием mySQL) для сайта социальной сети наиболее эффективным способом.Вот моя текущая таблица:

User_ID  Peer_ID   Message   
001      002       msg from 001 to 002
001      003       msg from 001 to 003
001      004       msg from 001 to 004
001      005       msg from 001 to 005
002      001       msg from 002 to 001
002      003       msg from 002 to 003
002      004       msg from 002 to 004
002      005       msg from 002 to 005
003      001       msg from 003 to 001
003      002       msg from 003 to 002
003      004       msg from 003 to 003
003      005       msg from 003 to 005
and so on...

(до приблизительно 10 000 членов с 9 999 сообщениями каждому соответствующему члену, т.е. 100 млн строк)

Я знаю, что одно из первых правил нормализации нарушается, посколькуСтолбец User_ID имеет повторяющиеся значения.Я предпочел бы иметь уникальный столбец индекса ключа для User_ID и использовать Auto_Increment для регистрации нового пользователя, что приводит к матричному формату.то есть.User_ID в столбце и Peer_ID в строке заголовка.Однако в этом случае потребуется до 10 000 столбцов (для каждого Peer_ID) и не будет возможности автоматически генерировать новый столбец при регистрации новых пользователей.Увидеть ниже:

User_ID  001             002             003             004            005
001      NA              msg:001 to 002  msg:001 to 003  msg:001 to 004 msg:001 to 005
002      msg:002 to 001  NA              msg:002 to 003  msg:002 to 004 msg:002 to 005
003      msg:003 to 001  msg:003 to 002  NA              msg:003 to 004 msg:003 to 005
004      msg:004 to 001  msg:004 to 002  msg:004 to 003  NA             msg:004 to 005
005      msg:005 to 001  msg:005 to 002  msg:005 to 003  msg:005 to 004 NA
and so on...

Есть идеи, как мне создать более эффективный дизайн стола?Заранее благодарен ...

Ответы [ 2 ]

2 голосов
/ 29 июня 2011

Ваш первый дизайн таблицы в порядке, нет ничего плохого в повторении значений от строки к строке. Я думаю, что вы неправильно понимаете концепцию повторяющихся групп, которая относится к повторениям от столбца к столбцу. (Какой ваш второй дизайн использует.)

См. http://en.wikipedia.org/wiki/First_normal_form

1 голос
/ 29 июня 2011

Я сделал одну систему обмена сообщениями. Интересно, если вы хотите сделать это как разговор в Gmail и Facebook.

Планируете ли вы показывать сообщения в одном разговоре? Если нет, то это довольно просто.

Тебе просто нужна пара файлов. Чтение / непрочитанный флаг и дата / время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...