2017-09-16 11 views
3

私は、プロジェクトが既にあるので、いくつかのpdfドキュメントを生成したり、いくつかのデータを保存したりすることができる、ASP.NET MVCの素晴らしいプロジェクトに取り組んでいます。 [いいえ重要] ASP.NET MVCの大きなデータベースプロジェクト

Programistは1 ADMINUSER会社が追加されます、ADMINUSER [そのような企業やなめらかのボス]役割に次のユーザーを追加します - '労働者など

だから問題があります。私は> 10テーブルを持って、1つの会社easly各テーブルの1行で50行を作成することができます。だから、いくつかのテーブル "CompanyId"とfiltrのすべてを追加する方がいいですか、または各社のために10のテーブルを持つ新しいデータベースを作成しますか?

私はhmm〜20社が欲しいです。しかし次に例を挙げると100-1000社です。

私は2番目の解決策は良いと思いますが、それを行う方法は?ついにあなたはそれについての良い本/記事に私を導くことができますか?

+0

https://stackoverflow.com/questions/34493998/multi-tenancy-or-multi-instanceが重要です。 – mjwills

答えて

3

ほとんどすべての状況下で、データを10個のテーブルの単一のセットに格納する必要があります。 50行/月の負荷の増加は、実際にはデータベースには何もありません。 50 * 10行/月の負荷は実際には何もありません。

なぜそれらを1組のテーブルに入れたいのですか?

  • あなたが容易に全体であなたのビジネスを何が起こっているかを確認するために、すべてのテーブル間で問い合わせることができます。
  • テーブルを一度設定して忘れることがあります。
  • ソフトウェアを簡単にアップデートして修正プログラムをインストールすることができます。クライアントごとに1回ではなく、1回だけ行う必要があります。
  • 異なるクライアントが同期を外す危険性はありません。
  • テーブルは、データがほとんどないときよりも多くのデータを持つときに効率的です。

あなたがテーブルの独自のセットで、クライアントごとに別々のデータベースを望む状況があります。

  • セキュリティ制限を使用すると、データを物理的に分離する必要があります。
  • 各クライアントには別注のアプリケーションがあるため、さまざまなバージョンのクライアントを使用することを期待しています。
  • クライアントは何らかの理由で異なるバージョンのデータベースソフトウェアにアクセスする必要があります。
  • パフォーマンス上の理由からクライアントを分離できることを確認する必要があります。

両側に理由があることは間違いありません。これらは私がすぐに考えることのできるものです。

+0

しかし今では10 * 50行* 20社(将来* 300)は月に200行* 10を持っているので、多くの行があります。私はフィルタリングしなければならない3つのテーブルは、それらが関連付けられています。 9個以上のドキュメントは、1か月に1回(pdf)圧縮され、dbから削除されます。私はfiltrと応答がかなり速いプログラムが欲しいです。とにかく早くなるほどの行があれば? @Jackob。 – JJJ

+1

。 。あなたが毎秒または毎分話していたら、心配するかもしれません。*月間数万行は問題ではありません。 –

関連する問題