1. 程式人生 > >建立MySQL典型表:一對一,一對多,多對多

建立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