我想用 PostgreSQL 和 RLS 设计一个多租户 SAAS 数据库。我希望能够在同一个数据库中托管所有用户和租户,并使用 RLS 隔离他们的数据。
在我的用例中,租户共享某些用户数据以避免重复这些数据是有意义的。租户将向用户请求权限,这些权限存储在权限表中,这些权限用于控制 RLS。
但是,我需要租户拥有其组织独有的用户数据,例如加入日期或其他数据。我需要知道的是如何设计数据库来保存所有组织特定的数据。我曾想过使用 JSONB 来存储这些数据,例如
user_data_for_tenant
id
user_id
tenant_id
data JSONB
这data
是由前端的租户决定的。
这个可以吗?我如何更好地设计数据库以适应这个用例?
我将使用 Supabase 进行数据库、身份验证、存储和其他用途,以便 RLS 可以控制访问。