標籤:
mybatis學習筆記(9)-訂單商品資料模型分析
標籤: mybatis
- mybatis學習筆記9-訂單商品資料模型分析
- 資料模型分析思路
- 資料模型分析
- 訂單商品資料模型建表sql
本文對接下來幾篇部落格中用到的資料模型進行分析,並附上建表sql檔案和測試資料檔案
資料模型分析思路
分模組對每張表記錄的內容進行熟悉,相當於你學習系統需求(功能)的過程。
非空欄位、外鍵欄位
外鍵關係
在分析表與表之間的業務關係時一定要建立在某個業務意義基礎上去分析。
資料模型分析
- 使用者表user:記錄了購買商品的使用者資訊
- 訂單表orders:記錄了使用者所建立的訂單(購買商品的訂單)
- 訂單明細表orderdetail:記錄了訂單的詳細資料即購買商品的資訊
- 商品表items:記錄了商品資訊
表與表之間的業務關係:
在分析表與表之間的業務關係時需要建立在某個業務意義基礎上去分析。先分析資料層級之間有關係的表之間的業務關係:
user—->orders:一個使用者可以建立多個訂單,一對多
orders—>user:一個訂單只由一個使用者建立,一對一
orders—>orderdetail:一個訂單可以包括多個訂單明細,因為一個訂單可以購買多個商品,每個商品的購買資訊在orderdetail記錄,一對多關聯性
orderdetail–> orders:一個訂單明細只能包括在一個訂單中,一對一
orderdetail—>itesms:一個訂單明細只對應一個商品資訊,一對一
items–> orderdetail:一個商品可以包括在多個訂單明細 ,一對多
再分析資料庫層級沒有關係的表之間是否有業務關係:
orders和items之間可以通過orderdetail表建立關係。
訂單商品資料模型建表sql
/*SQLyog v10.2 MySQL - 5.1.72-community : Database - mybatis**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=‘‘*/;/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO‘ */;/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;/*Table structure for table `items` */CREATE TABLE `items` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL COMMENT ‘商品名稱‘, `price` float(10,1) NOT NULL COMMENT ‘商品定價‘, `detail` text COMMENT ‘商品描述‘, `pic` varchar(64) DEFAULT NULL COMMENT ‘商品圖片‘, `createtime` datetime NOT NULL COMMENT ‘生產日期‘, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;/*Table structure for table `orderdetail` */CREATE TABLE `orderdetail` ( `id` int(11) NOT NULL AUTO_INCREMENT, `orders_id` int(11) NOT NULL COMMENT ‘訂單id‘, `items_id` int(11) NOT NULL COMMENT ‘商品id‘, `items_num` int(11) DEFAULT NULL COMMENT ‘商品購買數量‘, PRIMARY KEY (`id`), KEY `FK_orderdetail_1` (`orders_id`), KEY `FK_orderdetail_2` (`items_id`), CONSTRAINT `FK_orderdetail_1` FOREIGN KEY (`orders_id`) REFERENCES `orders` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `FK_orderdetail_2` FOREIGN KEY (`items_id`) REFERENCES `items` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;/*Table structure for table `orders` */CREATE TABLE `orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL COMMENT ‘下單使用者id‘, `number` varchar(32) NOT NULL COMMENT ‘訂單號‘, `createtime` datetime NOT NULL COMMENT ‘建立訂單時間‘, `note` varchar(100) DEFAULT NULL COMMENT ‘備忘‘, PRIMARY KEY (`id`), KEY `FK_orders_1` (`user_id`), CONSTRAINT `FK_orders_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;/*Table structure for table `user` */CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `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=27 DEFAULT CHARSET=utf8;/*!40101 SET [email protected]_SQL_MODE */;/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;/*!40014 SET [email protected]_UNIQUE_CHECKS */;/*!40111 SET [email protected]_SQL_NOTES */;
測試資料
/*SQLyog v10.2 MySQL - 5.1.72-community : Database - mybatis**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=‘‘*/;/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO‘ */;/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;/*Data for the table `items` */insert into `items`(`id`,`name`,`price`,`detail`,`pic`,`createtime`) values (1,‘台式機‘,3000.0,‘該電腦品質非常好!!!!‘,NULL,‘2015-02-03 13:22:53‘),(2,‘筆記本‘,6000.0,‘筆記本效能好,品質好!!!!!‘,NULL,‘2015-02-09 13:22:57‘),(3,‘背包‘,200.0,‘名牌背包,容量大品質好!!!!‘,NULL,‘2015-02-06 13:23:02‘);/*Data for the table `orderdetail` */insert into `orderdetail`(`id`,`orders_id`,`items_id`,`items_num`) values (1,3,1,1),(2,3,2,3),(3,4,3,4),(4,4,2,3);/*Data for the table `orders` */insert into `orders`(`id`,`user_id`,`number`,`createtime`,`note`) values (3,1,‘1000010‘,‘2015-02-04 13:22:35‘,NULL),(4,1,‘1000011‘,‘2015-02-03 13:22:41‘,NULL),(5,10,‘1000012‘,‘2015-02-12 16:13:23‘,NULL);/*Data for the table `user` */insert into `user`(`id`,`username`,`birthday`,`sex`,`address`) values (1,‘王五‘,NULL,‘2‘,NULL),(10,‘張三‘,‘2014-07-10‘,‘1‘,‘北京市‘),(16,‘張小明‘,NULL,‘1‘,‘河南鄭州‘),(22,‘陳小明‘,NULL,‘1‘,‘河南鄭州‘),(24,‘張三丰‘,NULL,‘1‘,‘河南鄭州‘),(25,‘陳小明‘,NULL,‘1‘,‘河南鄭州‘),(26,‘王五‘,NULL,NULL,NULL);/*!40101 SET [email protected]_SQL_MODE */;/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;/*!40014 SET [email protected]_UNIQUE_CHECKS */;/*!40111 SET [email protected]_SQL_NOTES */;
作者@brianway更多文章:個人網站 | CSDN | oschina
mybatis學習筆記(9)-訂單商品資料模型分析