关于数据表中一对多、多对一关系的设计

这里有个关于礼包表和礼包码表的关系的需求,礼包表中每一条礼包记录都可以对应多个礼包码,而礼包码表中每一条礼包码记录都有可能对应多个礼包。

礼包表

表名称:game_card

表引擎:Innodb

charset=utf-8

游戏礼包表

字段名称

类型

长度

默认值

字段说明

card_id

int

11

---

ID,主键,自增,主键

card_name

varchar

20

Empty String

礼包名称

relation_id

int

11

0

关联ID

礼包码表

表名称:game_card_sn

表引擎:Innodb

charset=utf-8

游戏礼包码表

字段名称

类型

长度

默认值

字段说明

card_sn_id

int

11

---

礼包码ID,主键,自增,主键

card_sn

varchar

20

Empty String

礼包码

relation_id

int

11

0

关联ID

就是在礼包和礼包码表中设置一个公共的关联字段。开始的时候game_card中的relation_id与主键card_id一致。而在这个指定的game_card下添加礼包码的时候礼包码中的relation_id需要与当前的game_card中设置的relation_id是一致。

之后添加的礼包,如果需要关联到已有礼包中的话,直接将新添加的礼包中的relation_id设置为已有礼包的relation_id一致。

在获取指定礼包的礼包码的时候可以通过relation_id在game_card和game_card_sn中进行关联查询。

原文地址:https://www.cnblogs.com/alonely/p/9685170.html