我想创建一个表来存储用户的优惠券。
例如,有3张优惠券,即A、B和C等。用户可以拥有10张优惠券A、20张优惠券B和5张优惠券C等。
我应该如何创建一个表来存储这些?系统中有许多用户。如何创建一个能够存储所有这些信息的表?
如果我只为用户和优惠券添加另一个表,我仍然需要添加一个表,它可以计算优惠券的数量。我有8种优惠券。我是否可以只使用一张表,并存储每一列的每张优惠券和每行的优惠券数量?
发布于 2018-08-19 08:47:17
您不能正确地使用单个表,更确切地说,您的数据库将是冗余的,并且很容易受到不一致的影响。
你应该读一下关于数据库规范化的文章。
一个规范化的解决方案是:
users
,列:coupons
,列:user_coupon
(它是重要的),它是一个如此命名的桥接表,列:users(user_id)
的外键)coupons(coupon_id)
的外键)coupon_id
的优惠券有用户user_id
)重要的是表user_coupon
上的主键必须是user_id
和coupon_id
!
https://dba.stackexchange.com/questions/215301
复制相似问题