2011-01-25 11 views
3

私はMVCの学習で遊んでいて、レシピレコーダーアプリケーションを作成してレシピを保存したいと思っています。データベーステーブルに重みを格納する

私は本当に私が何をしようとしています何を重要とは思わないが、私は、SQL Server 2008 R2で.NETを使用しています。

私は私が使用対策のすべてを記録することができるようにしたいです。私の国ではメトリックを使用していますが、人々が自分のアプリケーションで皇室を使うことができるようにしたいのです。私は、私はint型などの測定値のすべてを保存することを考えていたの違いに対処し、体重の種類を格納するための外部キーを持っている私のテーブルを構築するにはどうすればよい

理想的には私は人々の間でレシピを共有し、彼らの好ましい方法で測定を表示できるようにしたいと思います。

が、これは仕方

IngredientID PK 
Weight int 
TypeOfWeight int e.g. tsp=1,tbl=2,kilogram=3,pound=4,litre=5,ounce=6 etc 
UserID int 

の正しい種類であるか、トラックオフこの方法は何ですか?どんな提案も素晴らしいだろう!

+2

あなたはそれらを体重と呼ぶことから離れなければなりません。リットルは小匙と大さじのようなボリュームです。私はそれらを測定単位と呼ぶだけです。 – paxdiablo

答えて

5

私は強く、このデータの数値または小数を使用することをお勧めし(非離散値)の重みを格納している場合。 typeofweightの列で適切なアイデアがあります。参照テーブルをどこかに格納して、各(ある標準への)変換比が何であるかを示します。

オンスをTSPとして表示する場合は、成分自体に依存して変換が行われるため、これは非常に難しいので、3番目のテーブル成分(ID、名前、容積対重量比)が必要です。 standardユニットはそうtspに砂糖の500オンスを表示するための重量変換

type | vol-to-weight 
water | 1 
sugar | 1.4   // i.e. 1 tsp holds 5g of water, but 7g of sugar 

グラム

type | conversion 
gram | 1 
ounce | 28.35 
kg  | 1000 
tsp | 5   // assuming that 1 tsp = 5 grams of water 
pound | 453.59 

例成分量である

例typeofweightテーブル、は、式

を使用します
units x ounce.conversion x sugar.vol-to-weight 
= 500 x 28.35   x 1.4 

別の電子2つの加重

Ingredient is specified as 3 ounces of starch. Show in grams 
= 3 x 28.35 (straightforward isn't it) 

または

Ingredient is specified as 3 ounces of starch. Show in pounds 
= 3 * 28.35/453.59 
+0

cyberkiwiに感謝します!それは私を助ける:)私は誰もがメートル法を使用したい!私はtspとtblのようなもので大丈夫だろうと思うが、メトリックを使っている人がレシピでベーキングパウダーを使うのは理にかなっていると思う。塩のピンチのようなものは私が本当に変換することを心配する必要はありませんので、私は良いべきである。再びありがとう –

+0

'タップの下であなたの手を濡らす'。 「フライパンに2回飛んでいく」.. _that_をtspに変換する – RichardTheKiwi

+0

varchar(2000):) –

6

とXAMPLE私はあなたが単一量タイプ(メトリック)と正しい変換で単に「表示」、それらをとしての重み(キロ/ポンド)などを保存するべきだと思いますユーザーの好みを使用します。ユーザーに重量設定がImperialに設定されている場合は、システムに入力された値も変換する必要があります。とにかくデータを簡素化するはずです。日付と同様に

、あなたはどのようなタイムゾーンそれからであるか、そうでない場合は同じ(あるいは全くタイムゾーン)としてすべての日付を格納し、ユーザーの好みに応じたオフセットを使用してアプリケーションでそれらを表示するごとに、日付とを格納することができ

+2

これは1オンス= 28.3495231グラムと28グラムが0.987670935オンスになるという問題です。統一された重み付けですべての測定値を保存する際の丸め誤差を回避または処理するにはどうすればよいですか? –

+0

@ ben測定単位と精度のレベルは、状況に応じて決定する必要があり、使用される適切なデータタイプ – davidsleeps

関連する問題