Поэтому я пытаюсь создать довольно большую базу данных для обработки видео и их тегов.Поскольку для видео можно выбрать только конечное количество тегов (27), я храню их в таблице шириной 28 столбцов (один столбец для каждого тега + идентификатор видео).
Моя проблема возникает, когда я хочуполучить количество раз, когда пользователю понравилось / не понравилось видео с определенным тегом (скажем, № 24).Каждый Like / Dislike получает строку в другой таблице.
Вот два варианта, которые я рассмотрел.
1) Добавьте еще 27 столбцов tinyint в таблицу пользователей , каждый из которых представляет количество голосов, за которые он проголосовал.видео с tagX.
PRO: легко выбирается
CON: удваивает объем данных, необходимых для каждого пользователя
2) Использование внутренних объединений
PRO: сохраняет размерsmall
CON: Сложнее в системе
И потому, что я оптимист, и потому что я пытаюсь использовать передовой опыт, я пытаюсь оптимизировать свои базы данных для 300 000+ пользователей, и эти цифры будутнужно много.Я сделал подсчет, и даже с 300 000 пользователей это только добавило бы около 27 мегабайт в мою базу данных.
Что делать!?