我打算在ASP.NET中编写一个多站点内容管理系统。什么会更快:每个站点的数据库,或所有站点的一个数据库?
感谢。
编辑:如果每个站点都有一个数据库,我应该使用哪个数据库? XML?
答案 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服务在它们之间交换数据。这将是最“松散耦合”的解决方案:)