Правильно ли разбивать на две таблицы?

Здравствуйте. У меня есть таблица `tasks` (база MySQL). В ней поля id, name, type... И штук 15 параметров типа performer, performer_method, performing_interval... И параметры будут дополняться.

Скажите пожалуйста, как лучше: разбить на две основные данные о задаче и её параметры на две таблицы или всё в одной оставить?

Использую Yii, в данной таблице будет хранится больше 100 000 записей и часто обновляться
  • Вопрос задан
  • 2449 просмотров
Решения вопроса 3
Serhioromano
@Serhioromano
Web Developer
Если отношение 1-1 то я бы не стал разбивать на таблици. При разбитии может роаботать даже медленнее если нужно делать объединения.

Так же мого дополнительного кодинга. Например вы разбили и убрали параметры в другую таблицу. А потом заказыик решил что один из параметров должен быть основным и показываться в списке задач. Вам придется или объеденять, что делать нет смысла, зачем тогда разбивали, или переносить этот параметер и менять код что бы он сохранялся теперь в нужной таблице.

Но это мой личный опыт. Возможно я не прав.
Ответ написан
@1Michael1
а обязательно задачи вообще в БД хранить?
может лучше подумать в сторону очередей? BeanTalks, RabbitMQ к примеру?
на сколько я понял - задачи то будут "выполнил и забыл, а если не выполнил - нужен ретрай через какое-то время"
Ответ написан
azrail_dev
@azrail_dev
В одном проекте аодобная табличка разрослась до 320 полей. Это реально не удобно. Имхо, когда возможен такой рост, лучше разбить на 2 таблицы, в одной хранить то, что всегда не будет изменяться и табличка типа ключ-значение для изменяемых параметров. Выборку получаем интересную, похожую на пример
stackoverflow.com/questions/7674786/mysql-pivot-table
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы