11

Software as a Service など、複数のテナントをサポートするアプリケーションを構築する際のベスト プラクティスは何ですか?

このトピックを詳しく説明しているホワイト ペーパーへのリンクは大歓迎です。

4

2 に答える 2

11

データベースの場合:

A. すべてを同じデータベースに配置し、テーブルに tenant_id 列を配置します

長所:やりやすい

短所: バグが非常に発生しやすい: あるテナントから別のテナントにデータが漏洩するのは簡単です。

B. すべてを同じデータベースに配置しますが、各テナントは独自の名前空間に配置します(postgresql はそれらをスキーマと呼びます) 。

長所: オプション A よりも優れたデータ漏洩保護を提供します。

短所: すべてのデータベースでサポートされているわけではありません。AFAIK PostgreSQL と Oracle はそれをサポートしています。

C. テナントごとに 1 つのデータベースをセットアップする

長所: あるテナントから別のテナントにデータが漏洩する可能性はまったくありません

短所: 新しいテナントの設定はより複雑です。データベース接続は高価です。

上記のアイデアは、Guy Naor からのみ学びました。彼のプレゼンテーションへのリンクは次のとおりです

于 2009-04-04T13:55:34.270 に答える
9

Oren Eini による一連のブログ投稿で、貴重なアドバイスが見つかるかもしれません。

これはシリーズの最後の投稿の 1 つで、以前の投稿へのリンクがあります: http://ayende.com/Blog/archive/2008/08/16/Multi-Tenancy--Approaches-and-Applicability.aspx

于 2009-04-04T13:55:52.057 に答える