对不起,这个愚蠢的标题,但我不知道如何命名这个问题:)
因此,我试图构建一个非常简单的内容管理系统,将数据存储在数据库中。
其中一种数据类型是“内容类型”(类似于WordPress的post /定制post类型)。
内容类型可以是什么:页面、汽车列表、评论、图书产品等等。
每种内容类型都有自己的字段。例如:
等等..。
其思想是,这些内容类型是动态的(它们的字段也是如此)。他们将被加入一个扩展的CMS。唯一内置的内容类型将是页面。
无论如何,我需要关于如何为它们设置数据库表的建议。这应该是从主CMS,而不是从扩展,这些应该是非常容易编写使用CMS API。
如何设置表/表字段,以便根据特定内容类型字段搜索结果将非常快速?
WP对字段使用不同的表,并将它们作为行存储,ID指向它们附加到的post。但是当你在寻找多个字段时,这是很慢的.
发布于 2011-07-26 14:55:24
有很多不同的选择。
最常见的是在内容项旁边存储"key/value“对(我相信这是WP模型)。该模型存在许多问题--当搜索变得难以理解时的布尔逻辑,在代码中很难定义和验证内容类型(例如,“所有CAR内容类型都必须具有属性引擎大小”等),然而,它们确实使创建和更改内容类型变得容易。
另一个模型是根据内容类型生成数据库表,通常以“基本”内容项作为根。Larman的书中很好地讨论了如何建模数据库表(“应用UML和模式”)。这个设计创建了大量的内务代码--创建和修改数据库表是一件很麻烦的事情,我不建议在需要大量内容类型的解决方案中这样做。
我见过的最健壮的解决方案使用XML来存储内容--通常是在数据库中。XML允许您定义内容类型(使用DTD或模式),并验证/查询它。不过,它没有SQL快.
发布于 2011-07-28 16:36:28
id建议内维尔K的第一个解决方案,这将需要一个结构有4个表。
contents,
content_properties_name,
content_properties_values和被加入contents_properties (content_id , content_property_id , content_value_id )。
它的快速,搜索查询有点复杂。
https://stackoverflow.com/questions/6831505
复制相似问题