1

我曾使用.NET 平台开发过许多CMS 系统(CMS 管理系统在ASP.NET 中,呈现内容的站点是ASP.NET 和PHP)。

传统上,我将生成的内容存储在序列化为 XML 的类中,这些类存储在 MSSQL 2005/2008 中的 varchar(max) 字段中。这使得内容的不同消费者在结构上可以方便地使用,并且可以绑定到类(用于重新打开 CMS 记录并对其进行编辑,或用于消费网站)。

但是,我一直想知道其他 CMS 商店流行哪种类型的存储机制,以及是否有人喜欢或对我最熟悉的方法有严重问题。

好,坏,丑?你会怎么办?

4

3 回答 3

1

我个人将数据视为将存储在系统中的任何其他数据,例如,我有一个为 DNN 构建的模块,用于存储文本数据的集合,我在表中有以下列集合。

  • 条目 ID
  • 更新者
  • 更新日期
  • 由...制作
  • 创建日期
  • 排序
  • 内容 (NTEXT)
  • 隐藏(位)

我发现这使数据易于查找,并且无论调用者如何都易于操作。

于 2008-11-24T01:26:33.983 回答
0

在我们的 CMS 中,我们使用与 Mitchel Sellers 所描述的类似的结构,但我们将内容分隔在其自己的表格中。这在优化数据库时很有用,并允许我们轻松共享内容版本控制的功能。然后,我们为每个“实体类型”(如文档、产品等)提供一个表格,用于描述实体。

于 2008-11-24T13:36:21.777 回答
0

我们有一个 ASP.NET CMS 作为我们的主要产品,所以我很熟悉这个问题。这取决于您所说的“生成的内容”是什么意思。如果您的意思是用户输入的,那么我们使用表格结构将 HTML 存储为 ntext 和其他页面元素,该结构允许我们为每个页面元素拥有一组灵活的字段(有些配置使用一个或两个字段,其他则有几十个)。

这样做的主要好处是数据库中的数据代表了用户实际输入的内容。将 XML 存储在 SQL 数据库中只是添加了一层我们不需要的重定向。您可能试图让 SQL 像 OO 存储一样工作,这是 ORM 帮助解决的典型问题。

您可能会遇到的一个问题是难以将现有的 SQL 搜索机制与 XML 数据一起使用。

于 2009-02-19T23:50:41.060 回答