以下のシナリオのために、(。NET Frameworkが役立つ場合は)新しいWebページを開発しています。毎日、タクシー運転手のレポートを受け取ります。
Date | Blob
-------------------------------------------------------------
15/07 | {"DriverName1":"100kms", "DriverName2":"10kms", "Hash":"Value"...}
16/07 | {"DriverName1":"50kms", "DriverName3":"100kms", "Hash":"Value"}
'Blob'はjson形式で受信された実際のデータであることに注意してください-その特定の日にドライバーがカバーした距離に関する情報が含まれています。
上記のテーブルを読み取り、さらにこれを分解して、以下のような新しいテーブルに配置するサービスを作成しました。
Date | DriverName | KmsDriven
15/07 DriverName1 100
15/07 DriverName2 10
16/07 DriverName3 100
16/07 DriverName1 50
これを入力することで、次のクエリを簡単に実行できます。
その特定の日に何人のドライバーが運転したか。
その特定の週などの「DriverName1」はどうでしたか、
ここでの私の質問は次のとおりです。
.NET / SQL world
に具体的に対処するために何かありますか、または私がここで車輪の再発明をしているのかどうか私に知らせてください。Blob
データを使用する正しい方法ですか?
- .NET / SQLの世界で、これに具体的に対処するものはありますか、またはここで車輪の再発明を行うかどうかを知らせてください。
NewtonsoftのJson.NETなど、利用可能なJSONパーサーがあります。または、SQLServer独自の関数を使用することもできます。JSONから個々の値を抽出したら、それらを対応する列(新しいテーブル内)に書き込むことができます。
- これはBlobデータを使用する正しい方法ですか?
いいえ。原子性の原理に違反しているため、第一正規形に違反しています。
- ここで守るべきデザインパターンはありますか?
「パターン」についてはよくわかりませんが、この場合になぜBLOBが必要になるのかわかりません。
データが均一である(つまり、常に同じフィールドがある)と仮定すると、必要な列を宣言して、それらに直接書き込むことができます(すでに提案したとおり)。
それ以外の場合は、SQL ServerのXMLデータ型の使用を検討してください。これにより、XMLドキュメント内の一部のセクションを抽出したり、ドキュメント全体を置き換えずに新しいセクションを挿入したりできます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加