在 Rails 开发中一般大家怎么实现多主键的数据表呢?
比如,我有一个表叫做 PURCHASE,用于存储用户购买商品的记录。里面有 user_id 和 product_id。我希望 [user_id, product_id] 是主键组,这样用户不能重复购买。
听说的解决方案有使用 uuid,或者 Composite Primary Keys 这个 gem。
大家什么意见?谢谢
为什么不在 model 中处理好这件事情?
非要放到数据库,唉。
给 user_id 和 product_id 建立 composite index,并且设置 unique
建立索引就可以了
validates :user_id, :uniqueness => { scope: :product_id }
别用数据库来处理这个问题。
一般这个表应该叫做 line_items 的...
我用 Composite Primary Keys
#5 楼 @karmue +1
#2 楼 @quakewang +1 composite index unique
#4 楼 @ch3n #2 楼 @quakewang 谢谢你们的解答。
#1 楼 @xiaoronglv 在 model 当然能做,只是不知道哪种方法更合理。据说有很多操作,放在 DB 去做,会比在 Rails 的框架内做效率高,有这说法么?
各位大大,我是个小白,如果数据库有 3 个主键 user_id、product_id 和 flag 那么需要怎么写联合索引和 unique?