[英]Mapping Multi Tenant Database
好吧,我们正在开发带有单独数据库的多租户应用程序。 对于N个独立的数据库,所有模式都具有相同的结构。 我们使用带有aspx的MySql来构建Web应用程序。 现在将出现一种情况,即可能有相同的用户位于N个独立的数据库中。 我们需要一种方法来链接用户拥有其数据的那些数据库,并将其显示在下拉列表中。 在用户登录时链接数据库后,他/她将能够在其数据所在的下拉列表中查看所有可用的数据库。 当用户更改下拉列表值时,他/她应该能够立即更改数据库并从链接的数据库查看他/她的数据。 我们已经构建了多租户应用程序,并且一切正常。 问题是如何从特定用户的主数据库映射所有这些数据库。 每个用户在单独的数据库中都有单独的唯一ID。 因此,除了数据结构之外,用户在Multi Tenant Database中没有其他共同之处。 我们尝试将所有用户的唯一ID存储在主数据库中,并将其与用户所在的其他唯一ID关联,但解决方案未获得丰硕的结果。 任何其他替代方案都非常受欢迎。
我用于多租户mysql的方法是:
tenantID
列,该列按租户将数据分隔开 。
# ie. main database has tables: users, and invoices
# if you have a new tenant named "acme", then:
create database acme;
create view acme.users as select * from maindb.users where entityID=2;
create view acme.invoices as select * from maindb.invoices where entityID=2;
在我的情况下,这使我不必更改以前的任何查询(这些查询是在我知道要使用多租户之前构建的)。 我要做的就是选择合适的数据库,所有数据都会自动分离。
但是将实际数据全部保存在同一数据库中,简化了维护。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.