2

我目前正在使用 WCF 为应用程序开发服务。我想在 windows-azure 上托管这些数据,它应该托管来自不同用户的数据。我正在寻找我的数据库的正确设计。在我看来,只有两种不同的可能性:

  • 为每个客户创建一个新数据库
  • 将客户 ID 存储到每个表(或当每个表通过实体连接时的主表)

第一种方法具有非常好的速度和隔离性,但它在 Windows azure 上非常广泛(或者我是否理解一些azure 定价错误?)。此外,我不知道如何以这种方式配置 WCF 服务,因为它总是使用另一个数据库。

第二种方法速度慢,隔离性差。但它易于实施且成本更低。

现在我的问题是:有没有其他方法可以使用 azure 实现数据的高度隔离以及轻松集成到 WCF 服务中?我应该使用什么设计,为什么?

4

1 回答 1

4

您有两个额外的选择:在数据库中构建多个模式容器(请参阅我关于此技术的博客文章),或者甚至更好地使用 SQL 数据库联合(您可以使用我的名为Enzo SQL Shard的开源项目来访问联合)。我提供的链接也使您可以访问其他选项。

最后,这是一个相当复杂的决策,涉及性能、安全性和可管理性的权衡。我通常推荐联邦,即使它有自己的一组限制,因为它是云的灵活多租户选项,具有自动过滤数据的选项。查看开源项目 - 您将了解如何实现独立于物理存储的客户数据的良好分离。

于 2013-03-15T12:06:41.497 回答