2009-04-04 10 views

答えて

7

:バグに非常になりやすい:

短所を行うには簡単:

A.あなたのテーブルの上に

の長所をtenant_id列を入れて、同じデータベース上のすべてを置きますあるテナントから別のテナントにデータを漏洩させるのは簡単です。

B.は、(PostgreSQLがスキーマそれらを呼び出す)

賛否同じデータベース上のすべてを置くが、独自の名前空間内の各テナントを入れて:

短所オプションよりも優れたデータ漏洩保護を提供します:しませんすべてのデータベースでサポートされています。 AFAIK PostgreSQLとOracleはそれをサポートしています。

C.セットアップテナント

あたり1つのデータベース長所:別の

短所に1つのテナントから漏れるデータの絶対にチャンスがない:新しいテナントを設定すると、より複雑です。データベース接続は高価です。

私はGuy Naorから上記のアイデアを学んだだけです。彼のプレゼンテーションへのリンクは次のとおりです。 http://aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html

+0

、すべてのデータベース・サポート・スキーマが、異なる用語に。 MySQLでは、スキーマとデータベースは同義です。 MSSQLにもスキーマがサポートされています。本番環境のマルチテナントアプリケーションは、MySQL上の〜4000(現在)のデータベース/スキーマで動作します。 –

関連する問題