Хранить в БД или PHP?

Есть несколько списков.

Типа:
Причины модерации
Статусы модерации
Годы (для разных моделей)
И другие почти никогда не изменяемые данные.

Такие данные лучше хранить в БД в отдельных таблицах? Или в файле PHP, подключать его и брать данные оттуда?
  • Вопрос задан
  • 365 просмотров
Решения вопроса 4
FanatPHP
@FanatPHP
Чебуратор тега РНР
Разумеется, только в БД.

Маловероятно, конечно, но если вдруг проект разрастётся, то он будет разрабатываться не на коленке путем правки похапе файлов прямо на сервере, а через систему контроля версий и регулярный деплоймент командой разработчиков. И все эти "почти никогда не изменяемые данные" будут засорять историю правок и требовать ажно целого программиста ради добавления одного слова в статусы модерации.

Или, если сформулировать короче, то данные должны лежать в базе, а в РНР файлах - только код.
Ответ написан
@Arik
Если не так много вариаций и не нужно управлять допустим с админки, то можно и в коде в виде констант классов и констант массивов классов к которому относятся, в БД при этом можно хранить целые числа от них (status_id и т.д.), чтоб потом можно было без боли перенести в БД
Ответ написан
Комментировать
@stratosmi
Если есть требования дальнейшей эксплуатации без программиста на 100% и изменяться все же будет - в БД.
Если все же предполагается поддержка программистом на все время эксплуатации и меняется действительно редко - зашить в код:
а) Сэкономим сейчас время на админку и код извлечения из БД
б) И немножко заработает программист в будущем.
Ответ написан
Мой опыт 10+ лет разработки говорит мне, что это не особо важно. Но я лично склоняюсь к коду - меньше возни + при хранении в БД есть свои подводные камни. Например, MySQL неправильно использует индексы, если вы JOIN-те пару таблиц, одна из которых содержит меньше 6 (или 7-ми?) строк (https://bugs.mysql.com/bug.php?id=74078).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@HellWalk
Если у вас нет задачи сделать мега-супер-производительный сервис - лучше в БД. Проще впоследствии будет работать.
Ответ написан
Ваш ответ на вопрос

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

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