@ddwedwedewdw

Как лучше хранить мелкие данные в базе?

На сайте есть различные небольшие блоки (о нас и тд). Встречаются они единожды, но должны редактироваться менеджером -> храниться в базе. Вопрос заключается в следующем: лучше создавать под каждый такой блок отдельную таблицу или завести одну большую, в которую будут сваливаться все такие данные и помечаться каким-нибудь свойством. Например type: about, advantages, etc...
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 2
@alexalexes
В самом кратком варианте у вас будет одна таблица, которая будет отвечать за дерево страниц.
Таблица pages:
id - идентификатор страницы;
parent_id - идентификатор родителя страницы;
title - Название страницы
short_name - Краткое наименование (обычно используются для пунктов меню)
alias - имя алиаса для построения url страницы (то что вы указали как type: about, advantages, etc...)
create_date - дата-время создания страницы
update_date - дата-время изменения страницы
content - тело страницы
is_hidden - флаг скрытости страницы (удобно использовать для устаревания страниц)
PS: Посмотрите как это реализовано в любой популярной CMS, похожая таблица и свойства таблиц есть в любой из реализаций.
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
на сайте есть различные небольшие блоки (о нас и тд). Встречаются они единожды, но должны редактироваться менеджером -> храниться в базе.

Это различные небольшие блоки по смыслу ближе к обычным файлам в файловой системе.
Файловая система - наиболее гибкая и толерантная в данном варианте использования.

Но поскольку у вас стоит такое требование как хранить в базе - отсюда и возникает вопрос.
А с каким ключом туда это все ложить? Ключ должен быть осмысленным настолько чтобы эти
блоки потом найти и не потерять. И это даже не с нормализацией а скорее просто с особенностями
подобных хранилищ. Key-Value очень быстро захламляется и превращается в свалку или кладбище
документов без внятного понимания нужны они или нет.

Если url будет ключом - то это хорошо.
Ответ написан
Ваш ответ на вопрос

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

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