Много строк (eav) против большого количества пустых столбцов

Я пытаюсь изменить схему базы данных для веб-сайта, где у нас есть динамическая форма, заполняемая пользователями на основе категории, в которую они вписываются. Конечным результатом этой динамической формы является то, что у меня есть 100+ столбцов в базе данных для хранения их ответов, но в любом конкретном случае значение будет меньше 10.

Я стараюсь максимально сжать базу данных и, по возможности, удалить значения NULL и 1 решение вышеупомянутой проблемы, которую я рассматриваю, — это использовать таблицу EAV для хранения ответов на переменные вопросы.

Таким образом, таблица 1 будет содержать их имя, а несколько других битов, а таблица 2 будет содержать строку, содержащую вопрос и ответ на каждый вопрос с внешним ключом, связанным с таблицей 1.

Я выполнил некоторые расчёты с оплошностью: если бы они заполняли 1000 форм в день (высокая оценка, что невозможно в долгосрочной перспективе), я смотрю до 2 600 000 строк в таблице 2 в год (1000 * 10 * 260 — рабочие дни). Мой первичный ключ увеличится до 4 миллиардов, так что это не проблема, но я обеспокоен тем, что через несколько лет с 5-10 миллионами записей эта производительность серьезно снизится.

В основном меня интересует производительность. Что касается структуры, то EAV очень предпочтителен, так как он позволяет моему клиенту добавлять новые вопросы без необходимости взаимодействия с базой данных, и это помогает сохранить схему моей базы данных намного жестче, и я не обеспокоен тем, как это усложняет мой код, если это правильное решение для данных.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]