Задать вопрос

Как лучше (дешевле) хранить справочники?

Разрешите пожалуйста вопрос - в каком виде лучше хранить справочники.
Допустим имеем такого коня в вакууме - интернет магазин (на yii если это важно) с интеграцией 1с, откуда подтягиваются все данные, в т.ч. справочники цветов, размеров, производителей и т.п и т.д. Так вот как это лучше и дешевле хранить? Заводить под каждый справочник отдельную таблицу? Хранить все в одной? Или справочники хранить в виде xml(json - зависит от религии) файлов, а при необходимости их считывать? Какой способ дешевле по затратам озу/цп? Допустим у нас еще небольшой хайлоад в виде 10к+ хитов в сутки.
  • Вопрос задан
  • 1231 просмотр
Подписаться 4 Простой 9 комментариев
Пригласить эксперта
Ответы на вопрос 2
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
10k в секунду, нормально - это highload, а в сутки - вообще ни о чем ~ 7 запросов в минуту
Заводить под каждый справочник отдельную таблицу - это путь в сторону битрикс и могилы.
Хранить в xml/json - зачем, если есть база данных.
Мне кажется достаточно отдельной таблицы id|name|value|type, ну пары таблиц, еще одна с описанием.
Ну и кешировать все это в redis. Считывать все при старте и загружать в него.
Ответ написан
@thyratr0n
Вижу, народ тут нормализацией увлекся. Поясню: есть 6 форм нормализации, а есть суровая реальность. Точка. И нечего тут в адрес Алексей Черемисин указывать на какие-то нарушения.

Справочники нужно хранить так, как это возможно. Если данные однотипны:
1) если данные в них однотипны, можно скидать все в одну таблицу, запилив составной РК (type, key) или по старинке одинарный - это как душе угодно (пока количество записей не более, чем 6-ти значные, разницы не будет);
2) можно то же самое запилить в разных таблицах - на вкус и цвет, как говорит.
Если же данные разнотипны, то:
1) можно в разных таблицах, если по отличающимся полям может идти фильтрация;
2) можно все в одну таблицу, запилив какое-то "сложное" поле с типом TEXT/BLOB/VARCHAR, куда писать отличающиеся данные.

Все, никакими тут нормализациями и не пахнет. Всем добра.

P.S. Дмитрий Ларин вам следует более точно формулировать свои вопросы, ибо "Без ТЗ результат ХЗ" (с)
Ответ написан
Ваш ответ на вопрос

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

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