Добрый день, впервые работаю над сайтом без использования cms и возник следующий вопрос: каким образом лучше организовать хранения контента и информации о странице (title, метаданные и тд.)? Очевидно, что удобнее хранить все эти данные в бд, но вот как это сделать? Просто хранить данные о страницах в одной таблице с полями: title, article, кeywords, ... ?
Какие вообще лучшие практики? Как с этим справляются те же cms?
Я разрабатываю сайты на framework-е уже 5 лет, рекомендую хранить все в одной табице вместе с контентом страницы. Потому что после запуска сайта, очень редко страницы не содержат meta тэгов. А учитывать связку второй таблицы при программировании накладно и необосновано.
А остальная архитектура у вас какая? В самом простом случае я бы хранил в 2х таблицах - в одной основной контент и основные флаги и свойства, в другой - метаданные. Title как правило соответствует названию страницы (заголовку), поэтому это будет в основной таблице, как и контент. Метаданные (ключевые слова и тд) - в отдельной таблице. Связка - по ID страницы.
Stani10: но вариантов на самом деле масса. Если у вас метаданных не так уж много и они всегда имеют значения (то есть, нет "пустых" значений), то возможно лучше вообще в 1 таблицу впихнуть, оверхед будет минимальный, а удобство работы без JOINов в этом случае того стоит.
Игорь Воротнёв: пустых значений точно не будет, так как количество страниц на сайте не большое и каждая из них очень важна, поэтому заполняться они будут по максимуму.
Игорь Воротнёв: на самом деле, сайт сейчас представляет собой веб-приложение, которое уже использует реляционную бд, а текстовый контент планируется лишь как дополнение. поэтому не хотелось бы ради него использовать еще и noSQL базу данных.
Stani10: понятно, и вполне разумно. Выпишите в столбик все будущие поля таблицы, если их не так уж много и действительно не будет пустых данных - особого смысла для 2х таблиц нет.