2011-10-24 29 views
2

TenantIdを含むすべてのレコードを含む単一のデータベースを持つマルチテナントアプリケーションがあります。しかし、すべてのテナントが恩恵を受けるための共通のデータが必要な状況があります。私たちは実際に古いASP(noir、notclasic)アプリを再構築しており、そのアプリにはすべての共通のものがあるTenantId = 1があります。これはTenantId = 342 ||がどこにあるのかを問う質問に終わるので、私にはハックのようです。テナントID = 1。
これを行うより良い方法はありますか?テナント間の共通データを持つマルチテナント共有データベース

おかげで、

RAIF

+1

テナントにプライベートなデータの場合は "private"、すべてが見える場合は "universal"の値を持つPrivacyClassフィールドを持つことができます。その後、 'TenantId = 342 || PrivacyClass = "ユニバーサル"。 –

+0

その入力をありがとう。私はそこに他の方法でフィルターをかけたいと思っていたのですが、私は "会社のテナント"のルートに行くか、それとも共通のデータを保存するかを決めました。共通の問題。 – Raif

+0

これは実際にはまだ2013年の問題であり、まともな解決策を見つけることができないようです。当社のケースでは、個人データ、公開データ、および特定の共同作業者と共有されたデータを持つテナントが関係しています。もしあなたがこれに対して良い解決策を見つけたら、私に知らせてください。 –

答えて

0

私見では、私はあなたがグローバルまたは異なるテナント間で共有として持ちたいあなたレコードのNULLとして列の値をいただきたいテナントを持つことによって、これを達成することができます。テナント固有の値を保存する必要がある場合は、SRTをテナントの列に入れたいと思うテナントと一列に値を格納するだけです。このようにして、テナント固有の値とグローバル値の両方を1つのテーブルに格納して検索しやすくすることができます。

さらなる議論が必要な場合は、ご理解ください。

0

Johnathan Mの「プライベート」フィールドの提案を含む、ここではいくつかのアプローチが言及されています。問題を自分自身で調べていますが、行セキュリティが解決策であるように見えます。たとえば、with Postgresです。

関連する問題