我有桌子:
(coupon
)
| id | name | description | start_at | end_at |
| 1 | coupon_1 | FREE coupon ... |2017-02-01 04:00:33 | 2017-02-15 04:00:33 |
(coupon_code
)
| id | coupon_id | code |
| 1 | 1 | P69MFE5K |
| 13 | 1 | 75PRUE4G |
(coupon_recipient
)
| coupon_id | user_id | couponcode_id |
| 1 | 4 | 1 |
| 1 | 4 | 13 |
coupon_recipient
键:
coupon_id, user_id, couponcode_id
= Composite Primary Key
couponcode_id
= Unique Index
将couponcode_id
作为composite primary key
&的一部分可以吗? unique index
?
因为User
可以使用不同的same coupon
(coupon_code
)多次收到Composite Primary Key
相同的coupon_code
只能使用1 time
(Unique Index
)
答案 0 :(得分:0)
没有技术原因你不能将couponcode_id作为唯一索引并作为主键的一部分。但是,我认为没有任何实际理由可以使用coupon_id& PK中的user_id只会使表键更宽,这会对性能产生负面影响。
假设您的主键也是聚集索引键,如果couponcode_id在coupon_recipient中是唯一的,为什么不将它用作主键。你可以为coupon_id&创建一个非聚集索引。用户身份。