创建MySQL典型表:一对一,一对多,多对多

创建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`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8
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`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8
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

猜你喜欢

转载自blog.csdn.net/qq_22339269/article/details/84549751
今日推荐