Я ищу решение для разработки таблицы (с использованием 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...
Есть идеи, как мне создать более эффективный дизайн стола?Заранее благодарен ...