最近做一个库存与商品之间的数据库的时候用到一对一关联! 为什么使用一对一关联呢? 是这样子的,商品与库存之间是需要一对一的,因为商品 A,在库存中,数量是 20 个。 所以我们使用了一对一。
但是在使用中我觉得有点困惑: 首先,所谓一对一,就是商品 A 至于库存 B 有联系,不可以在商品 A 与库存 C 存在联系。这样一说来,究竟怎么表达 has_one 和 belongs_to,因为任意的交换都是可以的。
其次,虽然两者交换可以,但是我们存在着一个意境的表达,例如:库存拥有商品,商品在库存中;而不可以说商品拥有库存,库存在商品中,这样表达好像不太好。所以自然我们在商品中使用belongs_to :库存,库存中使用has_one :商品。
最后,根据上面的表达,我觉得字段应该这样,库存(商品 ID,数量),可是这样的想法是错误的。根据 guides 中描述的是应该在商品中保存库存的 ID,这样以来,库存就只需要保存一个(数量)的字段了。
或者你们说,其实直接按照 guides 那理解就可以了。但是我觉得有点与我的想象有点格格不入,从我的想法来说,始终觉得库存(商品 ID,数量)这样更好理解。或者是不是应该理解成,商品中包含了(库存 ID)可以理解成商品放入哪个库存中,这样就 Ok 呢?