0

私は、人に関する多くの「マーカー」(体重、身長、血圧など)を保存するアプリケーションを構築しています。ユーザーはすべて、自分で測定したい測定単位についてさまざまな期待を抱くため、スマートな方法でUOMに対処する必要があります。私が疑問に思っているのは、この情報を最適に保存する方法についてコンセンサスがあるかどうかです。私が検討している例は次のとおりです(いずれの場合も、フロントエンドはマーカーとキャプチャに関連付けられたUOMの両方をキャプチャすると想定されています)。

  1. メートル法の変換。同等のメートル法に変換し、元の単位が何であったかを保存しますが、メートル法の測定値のみを保存します(変換の小数精度が忍び寄る可能性はありますが、元の測定値は失われません)
  2. 両方を保存します。マーカーを保存し、取得した単位を取得してから、メトリックに変換して保存します。これにより、元のマーカーの精度を完全に維持しながら、メトリック量に対する「類似」のSQLクエリが簡単になりますが、明らかにストレージを大量に消費します。メートル法への変換を行う必要があるため、挿入にかかるコストもわずかに高くなると思います(ただし、これは重要ではないと思います)。

私にとって、精度の低下は、それが生み出す可能性のある不快なユーザーエクスペリエンスを除いて、重要ではありません。ユーザーが160ポンドを入れた後、159.99ポンドとして報告されたと想像してみてください。それは非常に当惑させられ、人々がシステムを信じないようにするでしょう。ほとんどの変換では、DBの精度のサイズをあまり大きくしなくても、同じ数に戻ることができると思います。しかし、この気持ちは、私がテストしたものではなく、私の明るい楽観主義です。

4

1 に答える 1

1

両方を保存するのは悪い考えのように感じます。これらの値が一貫していることを確認する必要があり、それがDRY(自分自身を繰り返さないでください)の原則に違反していることを確認する必要があります。

ストレージとプレゼンテーションを混乱させています。ウェイトを保存する場合は、1つの表現として保存してから、ユーザーが必要とする表現(キロ、トン、トン、グラム、石、ポンド、オンスなど)で表示する必要があります。

単位を大きさ(たとえば、10キロ、4石など)と一緒に保存できますが、比較が問題になります。たとえば、2オンス未満のエンティティのSQLクエリでは変換を実行する必要があります。プレゼンテーション時に単位変換を実行することは、一貫性のある直感的なソリューションだと思います。

于 2012-12-11T09:38:14.743 に答える