3

既存の RIA を書き直し、データベースを再設計して設計を再構築する作業を進めています。現在、データベースについて 2 つの意見があります。

(この選択肢は、SaaS ベースのホスティング用です。)

1) 顧客ごとの個別のデータベース。

2) すべての顧客に対して単一の DB。

私たちはかなりの量のデータを期待していますが、一部のお客様は 2GB から 10GB の範囲の db サイズを持っています。テーブルの数は約 100 です。

どちらを選択するかについて答えを得ることができますか?

今のところ NoSQL ソリューションについては考えていませんが、現時点では MySQL、Postgres、Oracle、MSSQL を含む JPA (Java Persistence API) で 4 ~ 5 個のデータベースをサポートする予定です。

PS: ホスティングに Amazon クラウドを活用する可能性があります。

4

1 に答える 1

19

この種のマルチテナント要件のデータベースの使用に通常適用される 3 つの主な手法を以下に示します。それらのいくつかはすでに指定されています。

  1. テナントごとに個別のデータベース:
    • コストが非常に高く、保守/カスタマイズが容易で、調整が容易で、バックアップが容易で、コーディングが容易です。
  2. データベースは共有されていますが、スキーマが異なります:
    • (1) に比べて低コスト、データベース サイズの増加により問題がすぐに発生する可能性がある、テナントごとのパーソナライズが容易、テナントごとのバックアップ/復元が困難、コーディングが容易。
  3. 共有データベース 共有スキーマ:
    • 低コスト、1 つのテナントの負荷が他のテナントに影響する、セキュリティとアプリ開発が課題、テナントごとのパーソナライズが困難、復元/バックアップが困難。

上記の点は、オンプレミスまたはクラウドでのホスティングに適していると思います。テナントの数が増えたり、データが大きくなったりする場合は、1) または 2) の方が適しています。私はオプション 2) を使用しており、それが開発と保守に役立つのを見てきました。

于 2013-03-29T04:28:54.173 に答える