Invizz
Новичок
Конструктор контента
Вообщем, волею судеб, реализую следующий концепт:
Юзер в админке может создать любой тип контента. Как это реализуется?
Он заходит в диалог создания раздела, пусть это будет блог.
Есть набор полей (назовем их fields). такие как Textarea, input, date и пр.
Выбираются необходимые поля, допустим:
Дата:date,
Выдержка:textarea,
Полный текст:textarea
Ну и соответственно в диалоге Blog->Create new post вываливается форма из этих трёх полей.
Но тут встал вопрос, как это хранить в базе данных?
1 вариант:
content
а в fields иметь уже список полей и их свойства.
Плюсы:
- Универсальность
Минусы:
- Запросы при работе с контентом усложняются, куча джойнов и все такое. В принципе, это не такой большой минус, но получается слишком абстрактно
2 вариант:
Генерировать структуру таблиц для контента на ходу. Хочет юзер блог?
blogs
Плюсы:
- Обычная структура
Минусы:
- Может какие-нибудь косяки выплывут, когда уже часть контента будет забита и придется структуру поменять.
А как вы думаете?
Вообщем, волею судеб, реализую следующий концепт:
Юзер в админке может создать любой тип контента. Как это реализуется?
Он заходит в диалог создания раздела, пусть это будет блог.
Есть набор полей (назовем их fields). такие как Textarea, input, date и пр.
Выбираются необходимые поля, допустим:
Дата:date,
Выдержка:textarea,
Полный текст:textarea
Ну и соответственно в диалоге Blog->Create new post вываливается форма из этих трёх полей.
Но тут встал вопрос, как это хранить в базе данных?
1 вариант:
content
Код:
id | section_id | content | field_id
---+------------+---------+---------
1 | 3 | Привет | 1
---+------------+---------+---------
Плюсы:
- Универсальность
Минусы:
- Запросы при работе с контентом усложняются, куча джойнов и все такое. В принципе, это не такой большой минус, но получается слишком абстрактно
2 вариант:
Генерировать структуру таблиц для контента на ходу. Хочет юзер блог?
blogs
Код:
id | date | excerpt | body
- Обычная структура
Минусы:
- Может какие-нибудь косяки выплывут, когда уже часть контента будет забита и придется структуру поменять.
А как вы думаете?