0

最大 20,000 人以上の学生プロファイルを持つデータベースを作成する決定を下しています。各学生プロファイルには 120 以上のプロパティがあります。

DOTNETNUKE CMS のような多くのエンタープライズ プロジェクトでは、使用されるメソッドは 2 つのテーブルで、1 つは UserProfile です。

[ProfileID],[UserID],[PropertyDefinitionID],[PropertyValue]

そしてもう一つは: ProfilePropertyDefinition

[PropertyDefinitionID],[DataType] ,[PropertyCategory],[PropertyName]

この方法を使用すると、20,000 x 120 = 240 万行になります。

これが正規化されたデータベースを持つ正しい方法であることはわかっています。データベース サーバーは何百万ものレコードを処理するように作成されていますが、120 列 + 十分なバックアップ列を持つプロファイル テーブルを 1 つ作成しないのはなぜでしょうか。拡張性のため?パフォーマンスが重要な場合、それは良いことよりも悪いことですか?

4

1 に答える 1

1

拡張性のために 100 列 + 十分なバックアップ列を持つ 1 つのプロファイル テーブルを作成しないのはなぜですか?

あなたの他のデザインはより拡張可能です。120 行に制限されていません。

パフォーマンスに関しては、2 つの異なるデータベース設計をテストする必要がありますが、20,000 の 50 キロバイト行ではなく、潜在的に 240 万の 100 バイト行を持つ ProfilePropertyDefinition テーブルについて話しているのです。

常にすべての行を読み取っている場合を除き、行が短いほど一般的にパフォーマンスが向上します。

于 2012-10-17T15:44:06.533 に答える