Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Таблица с большим кол-вом полей
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Таблица с большим кол-вом полей

Страниц (1): [1]
 

1. Deonis - 12 Ноября, 2013 - 10:08:54 - перейти к сообщению
Приветствую! Хотел посоветоваться по такому вопросу - есть анкета, количество заполняемых полей ~70+, теоретически их можно разбить на логические блоки, которые и записывать в отдельные таблицы БД (MySQL). Но имеет ли смысл это делать? Или же не париться и записать всё в одну таблицу? Вопрос - с точки зрения производительности. Сам я склоняюсь к последнему (одна таблица), но хотел выслушать другие мнения.
2. Ch_chov - 12 Ноября, 2013 - 10:27:34 - перейти к сообщению
Если эти данные нужно извлекать одним запросом, то и не стоит их раскладывать на несколько таблиц.

Хотя, если в каждой колонке хранится очень большой объём данных то теоретически может возникнуть проблема с ограничением max_allowed_packet в mysql при INSERT запросах.

В общем случае 70 полей для mysql не проблема.
http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]count-limit[dot]html
3. esterio - 12 Ноября, 2013 - 10:38:03 - перейти к сообщению
также стоить взглянуть в сторону денормализации
4. Deonis - 12 Ноября, 2013 - 10:42:31 - перейти к сообщению
Да, за исключением одного случая, данные нужно будет извлекать одним запросом. В таблице поля типов INT, VARCHAR, TIMESTAMP, никаких полей типа TEXT, BLOB etc - нет. Посему, объем данных большим не будет.
В общем, как я и планировал, буду делать одной таблицей. Просто впервые сталкнулся с такой задачей и не был уверен в правильности своих догадок, т.к. обычно делаю структуру БД таким образом, что всё разложенно аккуратно "по полочкам", а не одним большим скопом.

 

Powered by ExBB FM 1.0 RC1