これは本当にベストプラクティスに関する質問です。
私はいくつかの測定値 (HR と RR と呼びます) を収集し、これらの測定値の平均値を計算するシステムを開発しています。現在、ユーザー インターフェイスではこれらの平均値にのみ関心がありますが、後で詳細なデータ分析を行うには、すべての個々の測定値 (matlab にエクスポートするため) とすべての平均計算 (聞かないでください - ユーザー) が必要です。必要に応じて、個々の測定値を保存し、後で平均を計算します)。
平均計算などの詳細は次のとおりです。
- HR: 500 ~ 1500 ミリ秒 (可変) ごとに測定値を取得します。4 ~ 12 回の読み取りに基づいて平均を計算します (読み取り間の時間によって異なります)。
- RR: 3 ~ 17 秒 (可変) ごとに測定値を取得します。2 ~ 3 回の読み取りに基づいて平均を計算します (読み取り間の時間によって異なります)。
両方について保存します:
- 平均値 (10 進数) と、平均計算に使用される読み取り値からの最初の読み取りのタイムスタンプ。
- 個々の読み値 (10 進数) と、読み値が取得されたときのタイムスタンプ。
ご覧のとおり、データは平均計算と個々の測定値で同じです。
HR/RR と同じ-データは同じで、次のように表すことができます
。読書 |
- - - - - - - - - -
| タイムスタンプ |
| | 値 |
- - - - - - - - - -
異なる時間間隔などでデータを計算するため、HR + RR をデータベースに単一の行として保存することはできず、個別の行またはテーブルが必要です。
質問は次のとおり
です。それとも、特定の行が HR か RR かを示す列を使用して、別々の行として同じテーブルに格納する方がよいでしょうか?
2. 個々の測定値ごとに個別の表を作成する方が良いですか? それとも、個々の読み取り値が同じテーブルの行を参照し、それが使用された平均計算を使用する自己参照テーブルを作成する方がよいでしょうか?
私は DB 設計が得意ではなく、その状況でどのようなベスト プラクティスが使用されるかわかりません。
また、MongoDB (SQL データベースではなく、プロジェクトが C# ベースであるため、おそらく MSSQL) を使用することも検討していました。これにより、平均計算などを含むドキュメントに個々の測定値の配列を埋め込むことができるため、おそらく作業が楽になるでしょう。 Mongoへの書き込みが非常に高速であることを知っています...
ポインタはありますか?ありがとう。