1

質量、体積、温度などの単位のデータベースに単位変換機能を実装したいと考えています。私のバックグラウンドはソフトウェア開発であるため、当然、このタスクのために多数のユーザー定義関数を作成する傾向があります。しかし、これを達成するためのより「SQLっぽい」方法があるのではないかと疑っています。

ここまたはここで説明されているような表ベースの方法は優れていますが、温度 (F-to-C、C -to-F) または原子質量 (kgmol-to-kg)。多段階のアプローチ (ここで説明されているものなど) を見てきましたが、これらは複雑すぎて役に立たないようです。

ここで明らかな何かが欠けていますか、それとも関数が本当に唯一の方法ですか?

4

2 に答える 2

1

温度変換を処理するには、変換テーブルに乗数とオフセットが必要です。たとえば、F --> C の場合、オフセットは -32 で、乗数は 5/9 になります。

可能なすべての単位が事前にわかっている場合、テーブルベースのメッセージは問題なく機能します。ただし、メートル^5*リットルからインチ^5*ガロンなどの完全に柔軟なシステムが必要な場合は、ベース単位テーブルとユーザー定義関数を使用して変換を行う必要があります。この関数は、おそらく再帰的な cte を使用して単位式を解析します。これはすべてかなり複雑になるため、ユニットの完全なリストがあることを願っています。

于 2012-06-21T17:55:36.877 に答える
0

結局、UDF を使い続けることにしました。その決定の主な動機は、このタスクの頻度が低いことを考えると、テーブルベースのアプローチの複雑さが正当化されないように思われたことです。また、一部の関数 ( などConvertMass()) は、サブクエリに依存しています (たとえば、特定のコンポーネントの原子量を決定するため)。そのため、UDF は最も賢明な方法のように思えました。

于 2012-07-03T22:31:50.927 に答える