【问题标题】:asp.net CMS solution: best mechanism for storing the data in SQLasp.net CMS 解决方案:在 SQL 中存储数据的最佳机制
【发布时间】:2008-11-24 00:20:02
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    • EntryId
    • 更新者
    • 更新日期
    • 创建者
    • 创建日期
    • 排序顺序
    • 内容 (NTEXT)
    • 隐藏(位)

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-10-14
          • 1970-01-01
          • 1970-01-01
          • 2010-11-05
          • 2013-05-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多