我们有一个企业应用程序,我们正在向云迁移。到目前为止,我们的应用程序已经让多个用户通过位于其主服务器上的数据库访问信息。
我们正在尝试找出将软件迁移到云的最佳设置。我对azure Sql数据库的数据库分片做了一些研究。
我们试图实现的是,当用户访问我们的网站时,他们可以选择登录或注册登录。如果用户是新的软件,我们会希望创建一个新的数据库为这个用户的公司,使用我们的主数据库的模式。使用数据库分片,我相信这将被称为添加一个分片,然后用户将被添加到我们的ShardMapManager中,并被赋予一个分片键,允许他们对新创建的数据库(分片)读写数据。在软件内部,用户可以添加更多的用户,这将为他们提供与管理员用户相同的分片密钥。
对于那些因为隐私而需要每个公司都有自己的数据库的软件来说,这是最好的解决方案吗?还是有更好的解决方案来解决我们正在尝试做的事情。
另外,如果我的想法是正确的,那么我们不是必须执行一个查询来从分片映射管理器中找到分片键,以便当前用户能够读写应用程序的数据吗?
任何意见都是非常感谢的!
发布于 2020-01-11 04:24:58
我想您正在寻找Azure SQL弹性池:https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool
手动控制分片的想法也是可能的,但会增加您的操作团队的复杂性。看看这里描述的其他模式:https://docs.microsoft.com/en-us/azure/sql-database/saas-tenancy-app-design-patterns
https://stackoverflow.com/questions/59688077
复制相似问题