2011-01-22 2 views
0

優れたマルチテナントデータベース設計のための戦略に関する参考資料を探しています。 MySqlにはマルチテナントアーキテクチャのための組み込みサポートがありますか?この点に関するヘルプ/リンク/リファレンスは本当に感謝しています!あなたが公共のテーブル以外の各テーブルにtenant_idを追加する必要がありますのでマルチテナントデータベース設計

+2

受け入れられていない回答が14件あっただけでなく、ゼロの回答、何でもない投票(質問または回答)。 –

答えて

5

MySQLは、スキーマをサポートしていません。次に、ORMライブラリを上書きして、 "where tenant_id =?、tenant_id"をすべてのsqlに自動的に追加する必要があります。

レール上のマルチテナントアプリに関する一般情報。

レールとMySQLマルチテナント例

レールとPostgreSQLチュートリアル。私はあなたがMySQLがほしいと思うが、これはあなたに良い見通しを与える。

1

マルチテナントアプリケーションを設計するには、データベース設計

  1. 別個のデータベースのためのいくつかのオプションがあります。最も簡単ですが、資源消費で、MySQLはこの中に収まりますテナントごとに新しいデータベースが必要になります。これは、管理やバックアップやリストアなどの操作アクティビティが容易になり、顧客データを完全に分離することができます。
  2. 共有データベース、別々のスキーマ:このアプローチでは、1つのデータベースサーバーが使用されますが、新しいテナントごとに新しいスキーマを作成する必要があります。 MySQLはこれをサポートしていません。代替のDBMSはPostgreSQLです。このソリューションは、リソースの利用効率を最大限に高め、バックアップや復元などの操作アクティビティも同様に処理できます。
  3. 共有データベース、共有スキーマ:onurozgurozkanによって説明されているように、共有スキーマであるため、各レコードにテナントIDを格納する必要があります。このアプローチは、MySQLや他のDBMSでサポートされていますが、バックアップやリストアなどの操作アクティビティでは非常に困難です。そのためにはいくつかのツールを開発する必要があります。テナント数が多い場合は、この方法はお勧めしません。
関連する問題