--好吧,我们正在开发一个多租户应用程序,其中包含单独的数据库。对于N个单独的数据库,所有的模式都有相同的结构。我们使用MySql和aspx来构建一个web应用程序。现在会出现这样的情况:可能有相同的用户在N个单独的数据库上。我们需要一种方法来连接那些数据库,其中用户有他/她的数据,并显示在下拉列表。在链接数据库之后,当用户登录时,他/她将能够在其数据所在的下拉列表中看到所有可用的数据库。当用户更改下拉列表值时,他/她应该能够立即更改数据库并查看来自链接数据库的数据。我们已经构建了多租户应用程序,而且一切都很顺利。问题是如何为特定用户从主数据库映射所有这些数据库。每个用户在单独的数据库中都有一个单独的唯一ID。因此,除了数据结构之外,用户在多租户数据库中没有其他常见的东西。我们尝试将所有用户的唯一ID存储在主数据库中,并将其与用户所在的其他唯一ID连接起来,但解决方案并没有产生丰硕的结果。任何其他选择都是最受欢迎的。
。
发布于 2014-12-06 19:25:31
对于多租户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;在我的情况下,这允许我不必更改以前的任何查询(这些查询是在我知道要使用多租户之前构建的)。我所要做的就是选择合适的数据库,所有的数据都是自动分开的。
但是将实际数据全部保存在同一个数据库中,这简化了维护。
https://stackoverflow.com/questions/10274891
复制相似问题