列が動的で、列データの数がいつでも増減できるデータがいくつかあります。そのため、列形式ではなく行単位で保存する予定です。
列のマスターテーブルが配置されており、列が使用しているデータ型を示しています。参考までに下のマスターテーブルを描いています
CID Name Type
1 Speed Double
2 Input1 Bool
3 Message String
.......
.......
今、私はこの動的列データを保存する2つの方法を考えました。最初の方法は
CID Data_bool Data_String Data_Double
1 NULL NULL 12
2 True NULL NULL
3 NULL test NULL
1 NULL NULL 5
1 NULL NULL 15
2番目の方法は、一般化されたvarchar列を1つ持ち、各値をそこに文字列として保存することでした。
CID Datas
1 12
2 True
3 test
1 5
1 15
データベースの正規化の観点から見ると、2 番目の方法が適しているようです。しかし、データ検索で問題が発生する可能性があると思います。「速度> 10」のようにデータをフィルタリングしたいからです。したがって、2番目の方法(すべての値を文字列として保存する場合)に行くと、式の評価に時間がかかると思いますそして、式の最初の方法に行く場合、最初に式を評価する必要がある列を決定する必要があります. 元。式 Speed > 10 の場合、最初に Speed がどのデータ型 (string、bool など) であるかを確認してから、"data_double > 10" の式を再度実行する必要があります。
どちらにも独自の欠点があります。将来、どちらの方法で頭痛が軽減されるかを誰かが指摘できますか。このテーブルは、後の段階で数百万のレコードに成長することに注意してください。
ここでのあなたの見解と時間に感謝します。ありがとうございました。