私は、複数の組織が自分自身を登録し、クライアント、売り手、アイテム、販売注文などのリストなどのエンタープライズ テーブルのセットを操作できるアプリケーションを構築しています。クライアントごとに個別のテーブル セットを用意し、すべてを同じデータベース内で実行する方がはるかに安全です。たとえば、データベースは次のスキーマを持つことができます。
JOHNDOEFIRM_CUSTOMERS
JOHNDOEFIRM_CLIENTS
JOHNDOEFIRM_ORDERS
...
JAKEDOESONFIRM_CUSTOMERS
JAKEDOESONFIRM_CLIENTS
JAKEDOESONFIRM_ORDERS
...
など、会社ごとに 1 セットのテーブルを使用します。テーブルは、企業が登録するたびに作成され、適切なプレフィックスが付けられます。これには、次の利点があります。
- 会社が偶然に別の会社のテーブルを台無しにすることがなければ、より安全だろう.
- テーブルに対する会社固有のカスタマイズが行われます
企業ごとに別々のデータベースを保持するのと比較して、これを行う利点は何ですか? 各企業には約 20 ~ 40 のテーブルがあるため、テーブルの数はユーザー数に応じて爆発的に増加する傾向があり、データベース全体の速度が低下しますか?
今説明したアプリケーションの設計と、この投稿で指摘した問題に関するフィードバック、およびすべきこととすべきでないことの提案を大歓迎します。
ありがとう。