mybatis學習筆記(9)-訂單商品資料模型分析

來源:互聯網
上載者:User

標籤:

mybatis學習筆記(9)-訂單商品資料模型分析

標籤: mybatis

  • mybatis學習筆記9-訂單商品資料模型分析
    • 資料模型分析思路
    • 資料模型分析
    • 訂單商品資料模型建表sql

本文對接下來幾篇部落格中用到的資料模型進行分析,並附上建表sql檔案和測試資料檔案

資料模型分析思路
  • 每張表記錄的資料內容

分模組對每張表記錄的內容進行熟悉,相當於你學習系統需求(功能)的過程。

  • 每張表重要的欄位設定

非空欄位、外鍵欄位

  • 資料庫層級表與表之間的關係

外鍵關係

  • 表與表之間的業務關係

在分析表與表之間的業務關係時一定要建立在某個業務意義基礎上去分析。

資料模型分析

  • 使用者表user:記錄了購買商品的使用者資訊
  • 訂單表orders:記錄了使用者所建立的訂單(購買商品的訂單)
  • 訂單明細表orderdetail:記錄了訂單的詳細資料即購買商品的資訊
  • 商品表items:記錄了商品資訊

表與表之間的業務關係:

在分析表與表之間的業務關係時需要建立在某個業務意義基礎上去分析。先分析資料層級之間有關係的表之間的業務關係:

  • usre和orders:

user—->orders:一個使用者可以建立多個訂單,一對多
orders—>user:一個訂單只由一個使用者建立,一對一

  • orders和orderdetail:

orders—>orderdetail:一個訂單可以包括多個訂單明細,因為一個訂單可以購買多個商品,每個商品的購買資訊在orderdetail記錄,一對多關聯性

orderdetail–> orders:一個訂單明細只能包括在一個訂單中,一對一

  • orderdetail和itesm:

orderdetail—>itesms:一個訂單明細只對應一個商品資訊,一對一

items–> orderdetail:一個商品可以包括在多個訂單明細 ,一對多

再分析資料庫層級沒有關係的表之間是否有業務關係:

  • orders和items:

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)-訂單商品資料模型分析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.