【发布时间】:2016-02-03 21:32:17
【问题描述】:
我在非常简单的事情上遇到了很大的困难,在试图找到答案两天后,我需要一些帮助。
在我的产品数据库中,我使用的是货币。我想以美分存储所有产品价格。到目前为止,一切都很好,因为我也在与单位合作。我的产品包括杂货。例如,我有以下产品可供选择:
- Bottle of Coca Cola
- Can of Beer
- Pack of Milk
.. and so on
上述产品的单位通常是数字,你可以得到一瓶可乐,或者两瓶,以此类推。
除此之外,我还有鸡肉或牛排等产品。它们以盎司、磅、石头等为单位。我想存储每种产品 1 克的价格。
现在,我可以在我的数据库中添加一个名为 units 的字段,并且只需为每个产品添加一个单位。比如,对于瓶装可乐,我可以添加一个名为bottle 或简单的piece 的单位。对于鸡肉,牛排我可以说gram。或者我可以使用数值,对于瓶子,我只需使用1,对于克,一公斤可能为 1000,或磅为 500。
然后,为了执行一些计算,我可以在显示数据时对每个产品简单地执行此操作:
$total_price = $product->price * product->unit * product->amount / 100
金额代表输入的金额,例如我要两瓶可乐,金额输入2。或者,我要700克鸡肉,我直接输入700。我猜它确实有效。但这对我来说感觉不对,感觉应该有更好的方法来做到这一点。
另一个问题是,在显示每种产品的所有价格时。我当然不想以美分显示它们,而是以欧元显示,所以我只需将price per piece 除以 100,然后显示该价格。因此,例如,一瓶可乐的价格为 2 欧元,那么在我的数据库中,一瓶可乐的 price 字段为 200 (cents),在检索价格并显示价格时,我将其除以 100 以显示正确的 2欧元。
但对于鸡肉、牛排等,我做不到。例如,我首先需要计算从 1 克到 1000 克的价格,然后再将该价格除以 100 以显示正确的欧元。
因此,希望有人在这里理解我的问题,并且任何指向正确方向以帮助我找到答案的指针将不胜感激。
【问题讨论】:
-
听起来您正在寻求代码改进。您可能对我们的代码审查网站感兴趣:codereview.stackexchange.com