私は、Salesforce のようなアプリケーション (複数の顧客の機密データを含む Web アプリケーション、各顧客が複数のユーザーアカウントを持つことができる) の最適な DB セットアップについていくつかの調査を行っていました。
私の考えは、分割データベースのセットアップ (顧客ごとに異なる DB) が最適であるということです。これは、データがセキュリティの観点から本当に分離されていることを確認する唯一の方法であり、複数の顧客だけでなく、各顧客が持つことができるためです。ログインしてデータを操作する複数のユーザー。しかし... 10,000 個の「小さな」DB を備えた DB インスタンスは本当に機能するのでしょうか?
何万ものテーブルができてしまい、管理しにくいように見えるので、共有スキーマのセットアップにはあまり感じません。
テーブルごとにcustomerID列を使用するだけの1つの大きなDBセットアップは、実装が最も簡単に思えますが、実際には安全ではありません...そして、テーブルを結合することは、私が推測するようにかなりの作業になります。
このシナリオについてどう思いますか。個別の DB のシナリオは、スケーラビリティとセキュリティの観点から私には最良のように思えます...しかし、私は何を知っていますか :D
ありがとう!