为CakePHP中的每个Content$类型创建新表

为CakePHP中的每个Content$类型创建新表,cakephp,database-design,content-management-system,cakephp-2.2,Cakephp,Database Design,Content Management System,Cakephp 2.2,目标描述 试图制作一个内部使用的CMS,但在许多网站上使用CakePHP 我希望能够有一个通用的内容模型,然后有许多不同的用户生成的内容类型 这样做很简单,但如果网站上的每一个内容都包含在我的单一内容表中,我的单一内容表最终会变得庞大。我想把它分成几个表,以帮助查询时间/站点速度…等等 我不确定是否可能告诉CakePHP,如果内容的类型字段是article,那么它应该使用Content\u articles表……等等,我想在创建新的Content\u类型时,这些表将在保存后生成 最好给他们提供特

目标描述

试图制作一个内部使用的CMS,但在许多网站上使用CakePHP

我希望能够有一个通用的内容模型,然后有许多不同的用户生成的内容类型

这样做很简单,但如果网站上的每一个内容都包含在我的单一内容表中,我的单一内容表最终会变得庞大。我想把它分成几个表,以帮助查询时间/站点速度…等等

我不确定是否可能告诉CakePHP,如果内容的类型字段是article,那么它应该使用Content\u articles表……等等,我想在创建新的Content\u类型时,这些表将在保存后生成

最好给他们提供特定内容类型将使用哪些字段的选项,甚至可以通过添加/删除字段…等方式进行管理,然后仅在表中生成这些字段,并基于内容字段表数据对其进行验证

//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
问题:


有可能吗?有更好的方法吗?

也许对内容使用键值表而不是标准表?CakeDC的utils插件可以通过支持的RDBMS实现这一点

或者,您可以将此模型设置为使用键值数据源,如MongoDB,这是使用NoSQL的一个很好的用例。如果您谈论的是大量的键值存储和不断变化的模式,我可能会采用这种方法。github上有一个MongoDb插件