背景
我正在开发一个未来的多租户web应用程序,它将需要支持成千上万的用户。这个应用程序是建立在基于Java的游戏之上!MVC框架使用JPA/Hibernate和postgreSQL。
我看了Guy在上的演讲,他在演讲中谈到了几种实现多租户的方法(数据隔离随着列表的减少而减少):
每个客户都有一个单独的数据库。
一个数据库,为每个客户提供单独的模式和表(表名称空间)。
一个数据库,包含1组具有客户id列的表。
我确定了方法2,其中某种类型的用户id被解析出请求,然后用于访问该用户表空间。在进行任何查询之前都会给出一个postgres SET search_path TO c