我目前正在使用 WCF 为应用程序开发服务。我想在 windows-azure 上托管这些数据,它应该托管来自不同用户的数据。我正在寻找正确的数据库设计。在我看来,只有两种不同的可能性:
- 为每个客户创建一个新数据库
- 将客户 ID 存储到每个表(或者当每个表通过实体连接时为主表)
第一种方法具有非常好的速度和隔离性,但它在 Windows azure 上非常广泛(或者我对 azure pricing 的理解有误吗?)。另外,我不知道如何以这种方式配置 WCF 服务,它总是使用另一个数据库。
第二种方法速度慢,隔离性差。但它很容易实现并且更便宜。
现在回答我的问题: 有没有其他方法可以使用 azure 实现数据的高度隔离并轻松集成到 WCF 服务中? 我应该使用什么设计以及为什么?
最佳答案
您还有两个附加选项:在数据库中构建多个模式容器(有关此技术的信息,请参阅我的 blog post),或者更好地使用 SQL 数据库联合(您可以使用我的名为 Enzo SQL Shard 的开源项目来访问联合) )。我提供的链接还可以让您访问其他选项。
最终,这是一个相当复杂的决定,涉及性能、安全性和可管理性的权衡。我通常推荐联邦,即使它有 its own set of limitations ,因为它是云的灵活 Multi-Tenancy 选项,可以自动过滤数据。查看开源项目 - 您将了解如何独立于物理存储实现客户数据的良好分离。
关于sql - 如何隔离不同客户的SQL数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15431094/