Dom*_*Dom 11 web-applications ruby-on-rails
我们的应用程序当前为每个客户端生成一个新数据库.我们开始怀疑是否应该考虑将其重构为多租户系统.
我们应该考虑哪些利益/权衡?在Rails中实现多租户应用程序的最佳实践是什么?
小智 8
我一直在研究同样的事情,只是发现这个演示文稿提供了一个有趣的解决方案:使用Postgre的模式(有点像名称空间)来分离数据库级别的数据,同时保持所有租户在同一个数据库中并保持(大部分)透明轨道.
多租户系统将为您介绍一系列问题.我的快速想法如下
必须检查并重构所有SQL以包含ClientId值.
必须检查所有索引以确定是否需要包含ClientId
生产中的开发人员/系统管理员在SQL语句中的错误将影响您的所有客户.
数据库损坏/问题将影响您的所有客户
您有一些数据隐私问题,因此糟糕的代码/实现可能允许customerA查看属于CustomerB的数据
以沉重/激进的方式使用您的系统的客户可能会影响其他客户对性能的感知
根据个人客户偏好调整静态数据变得更加复杂.
我确信还有其他一些问题,但这些是我最初的想法.