dark_tke
@dark_tke
Разработчик ИС для образования (php, laravel, 1c)

Таблица с JSON полем или несколько таблиц под каждый тип данных, какой вариант проектрирования выбрать?

Коллеги, приветствую. Имеется анкета абитуриента поступающего на обучение, в которую вносятся приличное количество данных(порядка 100-120 полей в базе), и возник вопрос как это все дело лучше сделать, чтобы иметь возможность производить поиск по данным и не слишком сильно нагружать базу огромным их количеством.

Если делать в варианте один параметр одна строка в соответствующей таблице, то в ряде таблиц на время приема может быть до 20-30 млн записей. Если же все это делать в варианте json поля, то возникает вопрос скорости, и маскимального количества полей которые могут поместиться в это самое поле. Ибо может в любой момент возникнуть необходимость добавить еще какие то поля, по требованию законодательства или администрации.

Кто проектировал базы с динамическим количеством полей разных типов, как вы решали данную задачу? Ну и конечно если есть хорошие статьи на эту тему, буду рад почитать.
  • Вопрос задан
  • 301 просмотр
Решения вопроса 1
JhaoDa
@JhaoDa
LaravelRUS Team
В JSON может поместиться всё, что вы захотите в него поместить, mysql не волнует, сколько там «полей».

Размер JSON-поля определяется переменной max_allowed_packet.

Ну и лучше юзать PostgreSQL, там с JSON'ом всё лучше (в JSONB-варианте) — например, нормальные индексы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Зачем изобретать велосипед?
Есть форма на 120 полей - сделайте 120 полей в таблице.
1 анкета - одна строчка.
Удобно выбирать, удобно фильтровать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы