我们正在开发一个具有独立性的多租户应用程序 数据库。所有模式都具有相同的N分离结构 数据库。我们正在使用MySql和aspx来构建Web应用程序。 现在会出现可能有相同用户的情况 N个独立的数据库我们需要一种方法来连接这些数据库 用户拥有他/她的数据并在下拉列表中显示的位置。 在用户登录后链接数据库他/她将能够 查看他/她所在的下拉列表中的所有可用数据库 数据驻留。当用户更改下拉列表值时他/她 应该能够立即更改数据库并查看他/她 数据形成链接的数据库。我们建立了多租户 申请,一切都很好。问题是如何 从特定的主数据库映射所有这些数据库 用户。每个用户在单独的数据库中都有一个单独的唯一ID。 因此,用户在多租户数据库中没有任何常见内容 除了数据结构。我们尝试存储所有用户的唯一ID 在master数据库中并将其与其他唯一ID链接在一起 用户居住,但解决方案没有给出富有成效的结果。任何 其他选择是最受欢迎的。
答案 0 :(得分:0)
我为多租户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;
在我的情况下,这让我不必更改我之前的任何查询(在我知道我将使用多租户之前构建的查询)。我所要做的就是选择合适的数据库,所有数据都自动分开。
但是将实际数据保存在同一个数据库中,这简化了维护。