マルチテナントSaaSアプリケーションにおけるデータ分離戦略。
SaaSアプリケーションは、異なるテナントのデータを分離する必要があります。PostgreSQLはマルチテナンシーのためのいくつかの戦略を提供しています。
分離戦略
主に3つのアプローチがあります:テナントごとのデータベース、テナントごとのスキーマ、またはtenant_idカラムを持つ共有スキーマ。
テナントごとのスキーマ
各テナントは独自のスキーマを持ちます。これにより、適度なコストで良好な分離が実現されます。
CREATE SCHEMA tenant_123; SET search_path TO tenant_123;共有スキーマ
すべてのデータが1つのスキーマにあり、tenant_idで分離されます。多数の小規模テナントに対してより効率的です。
私たちの選択
共有データベース内でドメインごと(ブログ、食品、ビジネス)に別々のスキーマを使用します。これにより分離と効率のバランスが取れます。
結論
選択はテナントの規模、分離要件、運用の複雑さに依存します。