您让Sitecore(或其他CMS)管理了多少?

时间:2010-10-27 14:50:35

标签: asp.net database-design architecture content-management-system sitecore

我一直想知道您通常应该允许CMS管理多少内容,特别是对用户生成内容的引用。我正在考虑Sitecore,因为我有一个即将推出的项目,但这可以适用于任何CMS。

假设您有一个典型的电子商务网站,其中包含待售产品,用户可以为这些产品留下评论,并购买在网站内创建订单的产品。

我在浏览Sitecore文档的同时,在网络上可以使用Sitecore来管理每个内容。即每个产品在Sitecore中都是自己的项目,但每次用户提交审核时,它都会在该产品下创建一个Review项目。当用户进行购买时,它会在内容树中创建一个Order项目。

对我来说,起初这听起来相当可怕。我原以为你会使用CMS来编辑驱动内容。如果必须的话,我可以理解将产品作为项目,但我会将其他所有内容放入通过产品ID绑定到Sitecore的separte RDb中。这是更多的工作,但如果所有内容都放在Sitecore中,你可能会遇到巨大的性能问题吗?

另一方面,如果它全部放在您的CMS中,您就不必拥有额外的数据层,并且您可以充分利用CMS的内置缓存。允许您的编辑批准/拒绝评论会更容易,因为他们可以通过Sitecore管理员管理所有评论,而不必为其创建自定义页面。

您是否曾在一直以某种方式完成任务的网站上工作,或者您是否尝试过这两种方式?你找到它们有多成功?

3 个答案:

答案 0 :(得分:3)

我没有专门使用sitecore,但我的回答是基于umbraco和EpiServer的经验。

我已经尝试了两种,基本上,这取决于。如果你需要经常查询这些数据 - 它应该放在自定义数据库中,因为大多数CMS背后的数据库都是抽象的,很难像标准数据库那样查询。您会发现自己编写了许多样板代码来解决诸如松散类型,空值等限制。这是由于用户定义CMS的文档类型/页面的方式,即自定义属性。但是,在此路径下,您现在必须为此自定义数据构建管理工具,该工具可能或可能无法集成到CMS后端。所以你必须权衡这里的选择。

某些CMS产品(如EpiServer)将允许您使用提供者模型管理其中的自定义数据源,以呈现关系数据或其他数据(XML,Web服务调用),就好像它是CMS中的页面一样。

这些是您的基本考虑因素,您可以自行选择适合您具体项目的内容。

答案 1 :(得分:1)

我使用了Sitecore CMS,并使用Sitecore Ecommerce Fundamentals完成了一些工作。如果您打算使用Sitecore构建电子商务网站,您将需要使用电子商务基础知识作为Sitecore上预先构建的电子商务结构。产品,价格,交付选项,付款均在Sitecore内容树中完成。如果要添加客户评论,可以扩展Sitecore模板以处理此问题,或者您可以按照提及的方式连接外部数据库,并通过其Sitecore GUID链接它们。您可以在Sitecore中尽可能多地管理,因此需要了解您的网站数量以及对您管理的内容的期望。你会有几种产品还是数百种产品?你期望什么样的评论?几吨还是几吨? Sitecore有一个已知的性能问题,当一个项目下有超过100个直接子项时(想想产品下的注释项),Sitecore对该项目的执行效率较低。我建议您向SDN forum提供您网站的详细信息,并从那里获得Sitecore认证开发者的直接反馈。

答案 2 :(得分:1)

我使用的网站通常使用混合。

IE中。对于商业网站,我可能拥有Sitecore中的所有产品,类别等。但随后有评论,评级,评论等内容成为与项目相关的单独数据库的一部分。通常,当你有大量数据时这是有意义的,这会使Sitecore中的内容树太大而无法正常工作(即你必须创建代码,在子文件夹或其他技巧中自动将其分开)。 / p>

我发现Sitecore数据结构的最大问题是它有时会过于束缚它所在的树结构。而有些数据并不适合树结构。如果发生这种情况,我会尝试使用Sitecore以外的东西来构建和存储它。

并且如果结构开始变得太复杂或不合逻辑而不能使用它可能表明应该使用其他东西。

但是所有这一切,Sitecore在一些数据结构方面都很出色。就像网页的典型内容一样,结构化为页面和片段。 IE浏览器。项目,不是放在正常的网站结构中,而是放在其他地方并由普通页面引用。就像有一些常见的“内容盒”可以在几个页面上使用,但需要由内容作者选择,使用这些外部项目可能是一个很好的解决方案。