用户控制器单元转换

时间:2012-10-04 20:18:30

标签: mysql

我正在建立一个在线商店,并希望能够为产品指定各种测量值。像宽度/身高和体重这样的东西。

以宽度为例,他们会输入一个值,然后选择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
...

这是实现这一目标的最佳方法吗?

2 个答案:

答案 0 :(得分:0)

你可以采取任何措施来避免浮点数高度。如果您将数据库中的0.001存储为浮点数,则可能最终得到的实际值为0.00099999999982713,这可能会导致与您的意图相比有微小而恼人的偏差。

将这些表示为您愿意使用的某个“最小”单位的整数值会好得多。例如,千分尺,并将所有值转换为此等效量度。这就是大多数系统中为货币做的事情,以避免残酷的舍入错误。

答案 1 :(得分:0)

查看UNIX units函数的工作原理。它由一个数据文件驱动,并希望解决一些令人讨厌的问题。

http://www.linuxmanpages.com/man1/units.1.php