【发布时间】:2013-06-24 15:23:01
【问题描述】:
我们目前有一个单租户数据库架构,MySQL 运行超过 100 个数据库。我们使用 Apartment gem 切换子域上的数据库连接,一切都很好!
但是,我们现在需要创建所谓的“伞式”客户端,这些客户端可以访问我们现有客户端组的所有数据。我不认为这对于我们的单租户数据库架构来说是立即可行的(我研究了它并查询多个 MySQL 数据库似乎很糟糕),所以我开始研究 Postgres 架构的不同实现。
我正在寻求一些建议:
是否可以在 Postgres 中查询多个模式并以某种方式整理结果(寻找 Rails 实现)?我可以预见主键冲突的问题吗?
有一个新的模式会更好吗? 表示/复制需要的模式组中的所有数据 被访问?它需要是实时的。
如果是这样,可以在我当前的多个数据库中实现类似的东西吗 用 MySQL 设置? (尽量减少痛苦)
我对使用数据库字段在 MySQL 中实现多租户持谨慎态度,因为数据安全/隐私对于这个产品来说是一件大事,而且这样很可能会导致开发人员出错。
【问题讨论】:
-
可能相关的线程在这里:*.com/questions/6641653/…
-
塔恩克斯。我非常清楚如何在 Rails 中实现多租户应用程序,这是拥有一个可以访问多个其他租户的“伞形”租户的概念,这是我苦苦挣扎的地方。
-
多个 Postgres 模式比多个 MySQL 数据库要好得多。您应该能够查询您有权访问的数据库中的任何模式,无需显式切换。我希望有人能通过股票宝石得到答案。
-
@MikeCampbell:如果你对我两年前的问题有一个很好的答案,请分享。 :-)
-
我在我的伪多租户应用程序中所做的是我已经设置了一个模型,该模型存储了可从应用程序本身内部编辑的可配置范围,每个控制器都将其用作授权范围并过滤掉每个用户/group 我不想让他们看到的东西。
标签: mysql ruby-on-rails postgresql rails-postgresql multi-tenant