mysql表关系
https://www.cnblogs.com/bypp/p/7755307.html
创建Mysql表:User用户表,Order订单表,Orderdetail订单详情,item商品表
一个用户对应多个订单,一个订单只能对应一个用户;一个订单对应多个订单详情,一个订单详情只对应一个订单;一个订单详情只对应一个商品,一个商品可以包括在多个订单详情中;所以,用户和商品之间是多对多关系
CREATE TABLE user (
id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户id(主键)',
username varchar(32) NOT NULL COMMENT '客户名称',
birthday date DEFAULT NULL COMMENT '客户生日',
sex char(1) DEFAULT NULL COMMENT '客户性别',
address varchar(256) DEFAULT NULL COMMENT '客户地址',
PRIMARY KEY (id)
)
CREATE TABLE orders (
id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户id(主键)',
user_id bigint(32) NOT NULL COMMENT '下单客户id(外键)',
number varchar(32) NOT NULL COMMENT '订单号',
createtime datetime NOT NULL COMMENT '创建时间',
note varchar(32) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (id),
KEY FK_user (user_id),
CONSTRAINT FK_user FOREIGN KEY (user_id) REFERENCES user (id)
)
CREATE TABLE orderdetail (
id bigint(32) NOT NULL AUTO_INCREMENT COMMENT 'id(主键)',
order_id bigint(32) NOT NULL COMMENT '订单id',
item_id bigint(32) NOT NULL COMMENT '商品id',
item_num bigint(32) DEFAULT NULL COMMENT '商品购买数量',
PRIMARY KEY (id),
KEY order_id (order_id),
KEY orderdetail_ibfk_2_idx (item_id),
CONSTRAINT orderdetail_ibfk_1 FOREIGN KEY (order_id) REFERENCES orders (id),
CONSTRAINT orderdetail_ibfk_2 FOREIGN KEY (item_id) REFERENCES item (id)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8
CREATE TABLE item (
id bigint(32) NOT NULL AUTO_INCREMENT COMMENT 'id(主键)',
name varchar(32) NOT NULL COMMENT '商品名称',
price float(10,1) NOT NULL COMMENT '商品价格',
detail text COMMENT '商品描述',
pic varchar(512) DEFAULT NULL COMMENT '商品图片',
createtime datetime DEFAULT NULL COMMENT '生产日期',
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
一对一
一张表的一条记录一定只能与另外一张表的一条记录进行对应,反之亦然。
比如:用户和订单编号
1)表结