-1

私は以下のようなテーブルを持っています:

tblQuestions
---------------
ID(pk)int
CustomerID(fk)int
QTypeID(fk)int
QNumber int
FieldName varchar(max)
FieldValue varchar(max)

CustomerID、QTypeID、QNumberのクラスター化されたインデックス。
CustomerID、QTypeID、およびQNumberの組み合わせごとに、4〜5個のレコードがあります。また、customerIDごとに最大250レコードが存在します。

設計のもう1つの方法は、定義されたフィールドと、顧客ごとに1つのレコードを持つ外部キーとしてcustomeridを使用して5〜6個の異なるテーブルを作成することです。

私の質問は、最初のアプローチがパフォーマンスに影響を及ぼし始めたのは何レコード後ですか、それともこれまででしょうか?

このアプローチに何か問題がありますか?可能な最大レコードは、最大5,000万レコードになる可能性があります。

4

1 に答える 1

1

ここで時期尚早に最適化する可能性があります。期待されるパフォーマンスの観点からではなく、正規化と重複の削除の観点から最も理にかなった方法でスキーマを設計してください。

「私の質問は、最初のアプローチがパフォーマンスに影響を与え始めるのは何レコード後ですか?」

誰もあなたのためにこれに答えることができません. 提案されたテーブル設計のパフォーマンス特性を知りたい場合は、それをモックアップし、50M レコードを挿入して、いくつかのクエリを実行します。

「このアプローチに何か問題があると思いますか?」

データベース スキーマの設計に正解も不正解もありません。正規化などのベスト プラクティスがありますが、データを非正規化する理由もたくさんあります。それがあなたの懸念である場合は、それをモックアップしてパフォーマンスをテストしてください。

于 2012-07-03T01:06:00.740 に答える