建立MySQL典型表:一對一,一對多,多對多
阿新 • • 發佈:2018-12-16
建立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