首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >映射多租户数据库

映射多租户数据库
EN

Stack Overflow用户
提问于 2012-04-23 04:43:24
回答 1查看 344关注 0票数 0

--好吧,我们正在开发一个多租户应用程序,其中包含单独的数据库。对于N个单独的数据库,所有的模式都有相同的结构。我们使用MySql和aspx来构建一个web应用程序。现在会出现这样的情况:可能有相同的用户在N个单独的数据库上。我们需要一种方法来连接那些数据库,其中用户有他/她的数据,并显示在下拉列表。在链接数据库之后,当用户登录时,他/她将能够在其数据所在的下拉列表中看到所有可用的数据库。当用户更改下拉列表值时,他/她应该能够立即更改数据库并查看来自链接数据库的数据。我们已经构建了多租户应用程序,而且一切都很顺利。问题是如何为特定用户从主数据库映射所有这些数据库。每个用户在单独的数据库中都有一个单独的唯一ID。因此,除了数据结构之外,用户在多租户数据库中没有其他常见的东西。我们尝试将所有用户的唯一ID存储在主数据库中,并将其与用户所在的其他唯一ID连接起来,但解决方案并没有产生丰硕的结果。任何其他选择都是最受欢迎的。

EN

回答 1

Stack Overflow用户

发布于 2014-12-06 19:25:31

对于多租户mysql,我使用的方法是:

  • 主数据库包含所有数据--所有租户,但每个表都有一个tenantID列,该列将数据分离出来,由租户
  • 为每个租户创建多个数据库,但该数据库中充满了引用到主数据库的mysql视图。例如:

代码语言:javascript
复制
 # 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;

在我的情况下,这允许我不必更改以前的任何查询(这些查询是在我知道要使用多租户之前构建的)。我所要做的就是选择合适的数据库,所有的数据都是自动分开的。

但是将实际数据全部保存在同一个数据库中,这简化了维护。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10274891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档