実現したいこと
単位付き数値を持つデータの扱い方について、ご意見をいただきたいです。
発生している問題
以下のような数値とその単位の情報を持つカラムやテーブルが複数あり、見にくくなっています。
単位を揃えてやればいいのでしょうが、単位も記録しておきたいので、このような形をとっています。
fruits テーブル
name | height | unit_of_height | width | unit_of_width |
---|---|---|---|---|
apple | 100 | mm | 200 | cm |
banana | 300 | dm | 400 | m |
試したこと 1
単位付き数値として格納してみました。
カラム数が減り、すっきりしましたが height
と width
が数値ではなく文字列になったので計算が大変そうです。
fruits テーブル
name | height | width |
---|---|---|
apple | 100mm | 200cm |
banana | 300dm | 400m |
試したこと 2
長さを別テーブルにしてみました。
height
と width
は、それぞれ lengths
の id
に紐付いています。
fruits テーブル
name | height | width |
---|---|---|
apple | 1 | 2 |
banana | 3 | 4 |
lengths テーブル
id | unit | value |
---|---|---|
1 | mm | 100 |
2 | cm | 200 |
3 | dm | 300 |
4 | m | 400 |
補足
でてくる単位はその4つに限られますか、それとも任意で入力されてくるものですか。
いいえ、選択肢が用意されていて、その中から選びます。
単位は同じ単位系のみですか?つまりメートル系ならメートル系のみでヤード系とは混ざらない?
はい、メートル系であれば、そこに設定できるのはその単位系だけになります。
もう少し用途を明確にした方が良いです。単位を保存する意味がわからないし、数値にこだわる(どのような計算をする?)意味もわからないです。
言葉足らずですみません。
単位を保存する理由は、入力フォームの単位を揃えてしまうと、その単位に馴染みがないユーザーが扱いづらいというだけです。
計算は、プログラムで単位を揃えて足し算や引き算を行い、任意の単位で結果を返します。
回答4件
あなたの回答
tips
プレビュー