マルチテナントの目的でpostgresqlスキーマを使用するデータベースがあります。これは、というというスキーマ内のテーブルと、id
とtenant
の列を持っています。テナントの値は文字列であり、対応するpostgresqlスキーマがテーブルにあります。Postgresクエリの列の値をスキーマのプレフィックスに変換します。
それは次のようになります。
# public.customers # first.users # second.users
| id | tenant | | id | name | | id | name |
|----|--------| |----|--------| |----|--------|
| 1 | first | | 1 | bob | | 1 | jen |
| 2 | second | | 2 | jess | | 2 | mike |
私はちょうど顧客ID与えられ、スキーマ内のテーブルから値を取得するために、単一のクエリを作ることができるかと思いまして。
したがって、1
のcustomer_idがある場合、どのようにしてselect * from first.users
を1つのクエリで使用できますか。
これはpgpsqlで書かれた関数でなければならないかもしれないと思いますが、私はそれに多くの経験はありません。次のようなもの:
select * from tenant_table(1, 'users');
?
リレーションの間にFKがありますか?.. –
FK ........いいえ – brad