我想创建一个面包店库存,列出当天所需的成分总量:
您如何推荐存储饼干成分?我最初的想法是哈希。
{ 面粉:2.75, 糖:1, 。 。 。 }
答案 0 :(得分:1)
为什么要哈希?
然后,您失去了关系数据库的好处,例如,如果有人编辑“Sugar”成分,您的哈希不再是最新的。那个可能没问题,但你仍然需要反序列化并进行数学运算。
改为考虑(伪代码):
Recipe => has_many :quantities
Quantity => has_one :ingredient
Order => has_many :recipes # Or whatever; you get the idea
然后,您可以按成分查询一天订单的数量,并进行数学计算。
如果你想保留哈希,可以使用成分ID作为密钥等。
如果您已经在使用NoSQL数据库,那么以上都不适用,您可以选择其他一组选项,但在某些方面您最终会遇到相同的问题。