PostgreSQL と RLS を使用してマルチテナント SAAS データベースを設計したいと考えています。すべてのユーザーとテナントを同じデータベースでホストし、それらのデータを RLS で分離できるようにしたいと考えています。
私の使用例では、テナントが特定のユーザー データを共有して、それらのデータの重複を避けることは理にかなっています。テナントはユーザーにアクセス許可を要求し、これらのアクセス許可はアクセス許可テーブルに格納され、これらのアクセス許可は RLS を制御するために使用されます。
ただし、テナントには、加入日やその他のデータなど、組織に固有のユーザー データが必要です。私が知る必要があるのは、組織固有のすべてのデータを保持するデータベースをどのように設計できるかということです。JSONBを使用してこのデータを次のように保存することを考えました
user_data_for_tenant
id
user_id
tenant_id
data JSONB
これdata
は、フロントエンドのテナントによって決定されます。
これでいいですか?このユースケースに適合するようにデータベースをどのように設計すればよいでしょうか?
RLS がアクセスを制御できるように、DB、認証、ストレージ、およびその他の用途に Supabase を使用します。