0

我正在做一个项目,用户可以在网站上保存自己的优惠券代码,所以我想知道最好的方法是什么。

可以说,我有 1 个用户表,如下所示:

userId  |  firstName  | lastName  | codeId

然后我有一张优惠券代码表,如下所示:

codeId  |  codeNumber

所以我能做的就是连接codeId到,userId这样当有人保存优惠券时codeId,优惠券表中的优惠券就会进入codeId用户表的。

但是现在如果用户有多个优惠券,我该怎么办?他们应该如何连接到用户?

我有两个选择:

  1. codeId将优惠券表保存到codeId用户表中,例如1,2,3,4,5

  2. 在优惠券表中新建一行,并通过在优惠券表中添加另一个字段并将已添加优惠券的用户的名称userId放入其中,将用户连接到代码。userId

那么这两种选择哪个更好呢?

4

3 回答 3

2

两个表之间的多对多关系应该通过添加连接两者的第三个表来解决:

user_coupons
- userId
- couponId
于 2012-06-18T15:11:03.547 回答
1

您的第一个选项违反了 1-NF 规则,它表示没有列将具有一组值。

这是典型的一对多关系。您的第二个选项是创建一个单独的表 User_Coupons(不是下划线)并为每个关联创建一个带有 UserID、CouponCode 的行。这两列一起应该是唯一的,以便它们都成为关联表的主键。

于 2012-06-18T15:10:27.060 回答
0

如果我是你,我的数据库将是:

userId  |  firstName  | lastName

codeNumber | userId  

如果需要,您可以为任何用户插入许多 codeNumber。

于 2012-06-18T15:12:47.963 回答