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