asp.net CMS解决方案:用于在SQL中存储数据的最佳机制

时间:2008-11-24 00:20:02

标签: asp.net content-management-system content-management

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

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

但是,我一直想知道什么类型的存储机制在其他CMS商店中很受欢迎,如果有人喜欢或者对我最熟悉的方法有严重的问题。

好,坏,难看?你会做什么?

3 个答案:

答案 0 :(得分:1)

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

  • ENTRYID
  • UpdatedBy
  • UpdatedDate
  • CreatedBy
  • CreatedDate
  • SortOrder的
  • 内容(NTEXT)
  • 隐藏(位)

我发现这样可以轻松找到数据,无论调用者如何,都可以轻松操作。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

您可能遇到的一个问题是难以重复使用现有的SQL搜索机制和XML数据。