我目前正在为使用WCF的App开发服务。我想在windows-azure上托管这些数据,它应该托管来自不同用户的数据。我正在寻找合适的数据库设计。在我看来,只有两种不同的可能性:
第一种方法具有非常好的速度和隔离,但它在windows azure上非常广泛(或者我是否理解azure pricing错误的某些内容?)。另外,我不知道如何以这种方式配置WCF-服务,它总是使用另一个数据库。
第二种方法是速度慢,隔离性差。但它易于实施且更便宜。
现在我的问题: 有没有其他方法可以获得高隔离度数据,还可以使用azure轻松集成到WCF服务中? 我应该使用什么样的设计?为什么?
答案 0 :(得分:4)
您还有两个选择:在数据库中构建多个模式容器(请参阅我的blog post有关此技术),或者甚至更好地使用SQL数据库联合(您可以使用我的名为{{3}的开源项目访问联合会)。我提供的链接也可以让您访问其他选项。
最后,这是一个相当复杂的决策,涉及性能,安全性和可管理性的权衡。我通常建议使用联盟,即使它有Enzo SQL Shard,因为它是云的灵活多租户选项,可以选择自动过滤数据。查看开源项目 - 您将看到如何独立于物理存储实现数据客户的良好分离。