0

私はしばらくこれに苦労してきましたが、情報が見つからないようです。

C# で SQL データベース、EntityFramework、ASP、および .Net4 を使用してオンライン POS システムを作成しました。私の以前のプログラミング経験は OpenGL と DirectX であったため、これはすべて私にとって非常に新しいことです。

単一の会社のユーザーは、単一のアカウントを使用してサイトにログインします。その後、オンライン レジとバックオフィスを使用できます。これまで、ソフトウェアは単一の SQL データベースを使用して開発されてきました。私がやりたいことは、アプリケーションでアカウントごとに異なる SQL データベースのインスタンスを作成して使用することです。

これは理にかなっている/可能だと思いますか?それとも、すべてのユーザーに対して単一の巨大なデータベースを持つことを期待しますか? - 注: それぞれが大量の情報を保存する膨大な数のユーザーが存在する可能性があり、各ユーザーは自分のデータベースにアクセスするだけで済みます。

どんな提案でも大歓迎です

ありがとう、

4

3 に答える 3

2

スキームが変更された場合、各データベースインスタンスを同期し続ける必要があるため、これは良いアプローチではないと思います。

于 2012-05-04T12:26:48.477 に答える
1

これは理にかなっていると思いますか/可能ですか?それとも、すべてのユーザーに対して単一の巨大なデータベースを持つことを期待しますか? - 注: それぞれが大量の情報を保存する膨大な数のユーザーが存在する可能性があり、各ユーザーは自分のデータベースにアクセスするだけで済みます。

これは可能ですが、まったく賢明ではありません。ユーザーがデータベースにアクセスするのではなく、アプリケーションがアクセスします。ユーザーごとに完全なデータベースを分離することは、アプリケーションがアプリケーション内で独自のデータ構造を作成する機能をユーザーに提供している場合にのみ意味があります (ホスティング プロバイダーが行うように)。各ユーザーをキーオフした複数の同一の構造を単に収容することを意図している場合は、適切なリレーショナル構造の正規化 (SQL を使用していると述べたので仮定) とクエリ/ストアド プロシージャの最適化に時間を費やす方がよいでしょう。データの取得/挿入が高速です。

RDBMS は、各構造を適切に (ほとんどの場合はユーザーキーによって) 効果的にキーイングして正規化すれば、膨大な量のユーザーとデータの大きなサブセットを完全に処理できます。

于 2012-05-04T12:33:02.170 に答える
0

最善の方法は、すべてのユーザーに対して 1 つの巨大なデータベースを用意することです。

SQL Server は、インスタンスごとに 32,767 データベースのみをサポートします。

http://msdn.microsoft.com/en-us/library/ms143432.aspx

于 2012-05-04T12:31:22.903 に答える