2

この件に関する情報が必要です。少し調べてみましたが、状況によるようです。私の状況を以下に説明します。

私たちは、企業内でプロジェクトや財務状況を追跡できるシステムを開発しました。注文の作成、従業員間のタスクの分割、請求書の送信、支払いの確認などを行うことができます。

現在、この会社のすべてのデータを含む 1 つのデータベースを持つ 1 つのドメインがあります。このシステムを他の会社にも使用したいと考えていますが、すべての会社で同じファイルを持つ 1 つのドメイン上にあります。そのため、ファイルを 1 か所で管理し、すべてを独自のサーバーに保持できます。

複数のデータベースを使用したい理由は次のとおりです。

  • ファイルを 1 か所にまとめ、保守と更新を容易にしたい
  • クライアントが別のクライアントの財務データに誤ってアクセスすることはありません
  • お客様のデータを個別にバックアップできます

私の意見では、欠点は次のとおりです。

  • テーブル内の何かを更新する必要がある場合は、すべてのデータベースで手動で行う必要があります
  • 100 以上のデータベースの後、MySQL は本当に遅くなるのでしょうか?

すべての企業に個別のデータベースを提供することで、正しいことを行っているのでしょうか?

前もって感謝します!

4

3 に答える 3

3

技術的には、所有できるデータベースの数に制限はありません。簡単な検索では、数人が 1000 以上のデータベースにアクセスしていることがわかります。100 以上のデータベースに問題は見られません。

于 2012-10-22T18:08:09.243 に答える
2

ファイルを 1 か所にまとめ、保守と更新を容易にしたい

欠点については既に述べたように、更新でデータベースのスキーマの変更が必要になったらどうしますか? 何百ものデータベースを持つことは、単一のデータベース (client関連するテーブルにインジケーター列がある) と比較して、維持するのと同じくらい問題があります。

クライアントが別のクライアントの財務データに誤ってアクセスすることはありません

ただし、クライアントは webapp を介してのみデータにアクセスできます。それが事故やその他の理由で危険にさらされた場合、同じデータベース内の意図しないレコード以上に、他のデータベースへのアクセスを停止するにはどうすればよいでしょうか?

ビューは同様のセキュリティ上の利点を提供する可能性があります (ただし、現在はパフォーマンス コストがいくらかかかります)。ただし、私はストアド プロシージャを作成し、それらを介してアプリにすべてのデータベース アクションを実行させる傾向があります。これにより、すべてのデータベース アクセスを事前定義された操作のみに制限しながら、独自のセキュリティ チェックを実行できます。

お客様のデータを個別にバックアップできます

などを使用して、選択的なバックアップを作成することもできSELECT ... INTO OUTFILEます。

于 2012-10-22T18:13:58.040 に答える
0

会社ごとに独自のデータベースを使用する方がよい場合もあります。理論的には決してありませんが、実際にはしばしば実践されています。

  1. SQLコマンドは、よりクリーンで簡単に記述できます。
  2. より安全です。SQLクエリまたはスクリプトに欠陥がある場合、企業は誤って互いのデータベースにアクセスすることはできません。データベースを慎重に選択する必要があります。
  3. 後でデータベースがビジー状態になりすぎると、データベースを複数のサーバーに分割することになります。大きなデータベースやテーブルは分割が難しい場合があります。
  4. テーブルは小さいままなので、クエリも高速になります。
于 2012-10-22T19:23:21.593 に答える