Я рассматривал три аналогичных проекта базы данных, но не придумал очень сильных за или против относительно любого из них.
Одна огромная таблица для контента
content: int id, enum type, int parent_id, varchar title, text body, text data
Это присвоит каждой строке тип (новости, блог и т. Д.) И будет иметь поля для общих / стандартных / доступных для поиска данных, тогда любые нестандартные или тривиальные данные будут сохранены в виде сериализованного XML в поле data
.
Одна таблица для идентификаторов, много таблиц для содержимого
ids: int id, enum tableName, int parent_id
Здесь есть одна большая таблица для идентификаторов, затем каждая другая таблица ссылается на этот идентификатор, что упрощает иерархическое содержимое.
Комбинация двух вышеупомянутых, где основная таблица хранит всю общую информацию, но неважные данные хранятся в соответствующей таблице.
Естественно, легче поддерживать согласованность данных, когда у всего есть своя собственная таблица, но приведенные выше идеи значительно упрощают стандартизацию общих полей и значительно упрощают связь контента друг с другом (особенно с тегами).
Любые мысли или ссылки приветствуются.