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

来源:互联网 发布:北京航空运输十年数据 编辑:程序博客网 时间:2024/06/06 04:10

问题来源

关于 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 字段。

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