【问题标题】:How does writing to a database work when a web app uses multiple databases like Sitecore has当 Web 应用程序使用多个数据库(如 Sitecore)时,如何写入数据库
【发布时间】:2014-01-17 20:12:56
【问题描述】:

在 Sitecore 中,您基本上拥有三个数据库。 CoreMasterWeb 数据库。

简单地说,Core 数据库包含所有 Sitecore 设置。 Master 数据库是创作数据库。所以它包含任何内容的所有版本。

然后您可以在 Sitecore 中“发布”内容,它会将每个内容的最新版本发布到 Web 数据库。

假设我有一个带有新闻页面的网站。并且用户能够从网站编辑新闻项目(所以不是通过 CMS)。如果这样设置,数据库将如何更新?

它可能会更新 Web 数据库,但是当我进入 CMS 时,我看不到最新的更改,因为 CMS 从 Master 数据库读取,对吧?

这是否意味着它应该写两次?一次到Web 数据库,一次到Master 数据库?

谁能告诉我这在 Sitecore 等中是如何工作的?


我想知道这是因为我正在考虑创建一个类似的数据库设置。我只是不确定如何解决这个问题。

【问题讨论】:

    标签: database sitecore


    【解决方案1】:

    当您有需要网站访问者更新的项目时,您需要使用 SitecoreService SOAP Web 服务或创建您自己的自定义 Web 服务,在主实例上运行并在更新后触发发布。

    【讨论】:

    • 你也可以使用Item Web Api,但是你还是要按照你说的回调你的CMS实例。
    【解决方案2】:

    嗯,Sitecore 有一个发布步骤。当用户在 Sitecore 中发布时,它会在此时更新 Web 数据库。如果你想建立一个类似的系统,我会简单地将一个项目的所有版本存储在 Master 数据库中,并且只有当用户选择发布时,才将最新版本复制到 Web 数据库中。

    【讨论】:

      【解决方案3】:

      如果您的网站 - 生成很多 cmets - 连续生成 cmets - 使用多个内容交付服务器 - 需要 CMS 用户来管理它们

      我不会将 cmets 存储为内容项。 原因是 HTML 缓存和发布行为。

      在大容量网站上,您肯定会使用 html 缓存来获得最佳性能。如果需要发布以显示 cmets,则需要频繁的发布操作,因此经常清除 html 缓存。 你不想那样:-)

      在 DMS 实施之后建模是最安全的(不是最便宜的,而且我现在不推荐使用 Datatables),将内容存储在单独的数据库中,如果事情繁忙,可能会使用排队来防止过载。..

      【讨论】:

        猜你喜欢
        • 2015-05-27
        • 2015-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-30
        • 1970-01-01
        相关资源
        最近更新 更多