私は次のジレンマに何度か遭遇しました。他の人がこの問題にどのように対処したか、または状況に対処できる標準的な方法があるかどうかを知りたいです。
一部のドメインでは、自然に非常に幅の広いテーブルを検討するようになります。たとえば、何年にもわたって進化する時系列調査を考えてみましょう。このような調査には、数千とは言わないまでも、数百の変数が含まれる場合があります。通常、おそらく数千または数万行しかありません。このような結果セットを、各変数がテーブルの列に対応するテーブルと見なすのは当然のことですが、少なくとも SQL Server では、1 つが 1024 (非スパース) 列に制限されています。
明らかな回避策は、
- 各レコードを複数のテーブルに分散する
ResponseId
、、などの列を持つ単一のテーブルにデータを詰め込みVariableName
ますResponseValue
番号 2. いくつかの理由 (クエリが難しい、最適でないストレージなど) で非常に悪いと思うので、実際には最初の選択肢が実行可能な唯一の選択肢です。この選択は、クエリされる可能性が高い列を同じテーブルにグループ化することでおそらく改善できますが、データベースが実際に使用されるまで、これを実際に知ることはできません。
したがって、私の基本的な質問は、この状況を処理するためのより良い方法はありますか?