所以,我打算制作一个CMS,我只想要一些选项。
这个想法很简单,但似乎没有其他人这样做,所以这个想法一定有问题吗?
基本上,我会有一个名为'fields'的表。该表将包含各个数据字段。然后我会有一个名为data_node的第二个表,它是一组用于创建数据对象的字段。
因此,data_node将是一篇博文。该data_node将具有4个字段。标题,内容,创作,出版。
字段表有4个条目,data_node表有1个条目
在PHP级别,您将拥有可访问数据节点的模块。
这有不足之处吗?一个表可以做很多工作但是对于中型网站来说这不是问题吗?
答案 0 :(得分:2)
您定义的内容基本上是EAV结构。 EAV通常用三个表来实现,一个定义实体(在您的情况下是帖子),一个定义属性(标题,内容,创建,发布等),一个为给定实体提供单个值并给定属性。
正如您明显推断的那样,EAV结构允许非常灵活地存储同类数据,因为您将所有定义为“是”的内容抽象为另一层数据。好处是灵活性,但缺点很多:
EAV结构有其自己的位置,但通常在开发系统时,个别最终用户希望为实体定义自定义属性,而无需更改应用程序或数据库。除非您需要这种灵活性,否则成本要高于收益。
答案 1 :(得分:0)
几年前,我开发了一个使用这种架构的系统,用于由欧盟资助的科学项目。这是一个很好的实验。
缺点,根据我的经验: