我正在建立一个在线商店,并希望能够为产品指定各种测量值。像宽度/身高和体重这样的东西。
以宽度为例,他们会输入一个值,然后选择mm, cm, m
等。
然后,应用程序会将其转换为相同的基本单位,比如mm,以便在整个应用程序中轻松使用。
做这种事情会有什么好的架构?我正在思考以下几点:
id name factor
1 mm 1
2 cm 0.1
3 m 0.001
...
然后我可以执行$ userValue / $ factor = $ normalized。这可能需要一个连接表,其中包含以下内容:
id name
1 length
2 weight
...
这是实现这一目标的最佳方法吗?
答案 0 :(得分:0)
你可以采取任何措施来避免浮点数高度。如果您将数据库中的0.001存储为浮点数,则可能最终得到的实际值为0.00099999999982713,这可能会导致与您的意图相比有微小而恼人的偏差。
将这些表示为您愿意使用的某个“最小”单位的整数值会好得多。例如,千分尺,并将所有值转换为此等效量度。这就是大多数系统中为货币做的事情,以避免残酷的舍入错误。
答案 1 :(得分:0)
查看UNIX units
函数的工作原理。它由一个数据文件驱动,并希望解决一些令人讨厌的问题。