Описание цели
Пытаюсь сделать CMS (для внутреннего пользования, но на многих сайтах) с CakePHP.
Я хотел бы иметь общую модель Content
, а затем иметь много различного пользовательского контента types
.
Это было бы просто сделать, но моя единственная таблица contents
в конечном итоге стала бы огромной, если бы в ней был каждый фрагмент контента на сайте. Я хотел бы разделить его на таблицы, чтобы упростить время запроса/скорость сайта... и т. д.
Моя мысль (не уверена, что это возможно) состояла бы в том, чтобы каким-то образом сообщить CakePHP, что если поле type
содержимого является «статьей», то оно должно использовать таблицу content_articles
... и т. д. Эти таблицы будут генерироваться afterSave
(я полагаю) при создании новый content_type
.
Было бы неплохо дать им варианты того, какие поля будет использовать конкретный тип контента - даже управлять этим, добавляя/удаляя поля... и т. д., а затем только генерировать эти поля в таблице и каким-то образом выполнять их проверку на основе content_fields
данные таблицы.
//my thoughts on tables:
content_types //id, name, description, use_table
content_fields //id, name, content_type_id, required, field_type, max_chars
content_articles //generated by code
content_people //generated by code
Вопросы:
Это вообще возможно? Есть ли лучшие способы сделать это?