多站点CMS - 每个站点的数据库,或所有站点的ONE数据库?

时间:2009-09-05 18:15:53

标签: c# asp.net database database-design content-management-system

我打算在ASP.NET中编写一个多站点内容管理系统。什么会更快:每个站点的数据库,或所有站点的一个数据库?

感谢。

编辑:如果每个站点都有一个数据库,我应该使用哪个数据库? XML?

5 个答案:

答案 0 :(得分:3)

如果您的网站访问量很大,那么所有网站的单个数据库可能会成为一个糟糕的选择。此外,这意味着您的数据库表必须更复杂,使系统变慢。

关于数据库的格式,XML不是其中之一。例如,尝试使用MySQL或Postgree。

答案 1 :(得分:2)

这真的取决于你的CMS会有多复杂,如果它是一个简单的微型CMS就像博客一样,并且你没有很多这个服务的订阅者,那些订阅者可能在他们的CMS上具有相同的功能和特性,然后可以选择一个数据库。

但是,如果您的CMS具有许多粒度配置级别,许多功能和特性,可能需要存储大型数据集。我会为每个实例推荐单独的数据库。

文件数据库,尤其是Access这种数据库不是为在线应用程序设计的,它们可能同时具有连接约束,因此当收到很多请求时,它可能会拒绝为您的Web应用程序提供服务。

如果您使用的是微软技术,那么您对数据库没有太多选择,MSSQL可能是唯一的选择,您可以选择SQL Express,但它不适合大型网站。

实际上,有很多开源CMS可用,即使你想选择基于微软技术的cms,你也可以先尝试一下,以便对你的设计有所了解。

祝你好运。

答案 2 :(得分:1)

由于您使用.NET构建,您可能需要认真考虑SaaSGrid(仅供参考 - 我在Apprenda工作)。您只需将应用程序编写为单个客户,但在部署时,SaaSGrid会将应用程序转换为真正的多租户SaaS产品。因此,数据模型问题实际上变成了部署时配置选项,而不是主要的设计时决定。还有很多其他的好处,但为了听起来不像商业广告,我会留下它:-)。

此外,这是一篇关于多租户的好文章:

http://msdn.microsoft.com/en-us/library/aa479086.aspx

希望这有帮助。

  • 杰西

答案 3 :(得分:0)

一种选择是使用多租户单实例应用程序和数据库。

对于注册和使用(SaaS)的小型网站,这将减少对收入的维护。对于支付更多支持和维护费用的大客户,您可以随时为他们提供自己的单个实例。

一个选项可能是在微软云“SQl Azure”中托管数据库 http://www.microsoft.com/azure/sql.mspx

答案 4 :(得分:0)

为什么你需要它在多个实例上?他们使用相同的数据吗?如果是这样,您可以使用自己的数据库(msSQL,mySQL等)设置每个实例,并使用Web服务在它们之间交换数据。这将是最“松散耦合”的解决方案:)