【Question 02】如何为表创建外键关联?

本文详细介绍了MySQL数据库中外键关联的使用方法,并通过创建用户表和订单表的实例,演示了如何设置外键来实现数据间的一对多关联。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题来源

关于 MySQL 数据库我已经写了一部分了,但是好像忘记了一点,就是外键关联。昨天才想起来忘记这个了,就当个问题总结下吧。

解决方案

创建表 user

create table s_user(
       u_id int auto_increment primary key,
       u_name varchar(15),
       u_pwd varchar(15),
       u_truename varchar(20),
       u_role varchar(6),
       u_email varchar(30)
)

创建 order 表

create table s_orderform(
     o_id int auto_increment primary key,
     o_buyer_id int,
     o_seller_id int,
     o_totalprices double,
     o_state varchar(50),
     o_information varchar(200),
     foreign key(o_buyer_id) references s_user(u_id),      #外链到s_user表的u_id字段
     foreign key(o_seller_id) references s_user(u_id)      #外链到s_user表的u_id字段
)

完美解决

 foreign key(o_buyer_id) references s_user(u_id)

外键为 order 中的 o_buyer_id, 值参考自 user 表的 u_id 字段。

注意: 外键一般是多参考一,比如说一个用户有多个订单,那么用户和订单之间的关系就是一对多的关系,订单和用户就是一对一的关系。所以外键应该在订单表中,参考数据应该是在用户表中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值