码迷,mamicode.com
首页 > 其他好文 > 详细

17_高级映射:一对一查询(使用resultType)

时间:2016-09-07 12:52:36      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

【数据库模型】

技术分享

技术分享

【各个表】

[ 用户表user ]

  购买商品的用户信息。

[ 订单表 ]

  用户所创建的订单  

[ 订单明细表 ]

  订单的详细信息,即购买商品的信息

[ 商品表 ]

  商品的具体信息

【有关系的表之间的业务关系】

分析表与表之间的业务关系时,需要建立在某个业务意义的基础之上去分析。

[ user 与 orders ]

user ---> orders :一个用户可以创建多个订单, 一对多

orders ---> user :一个订单只能由一个用户创建,一对一

[ orders与orderdetail ]

orders ---> orderdetail :一个订单可以包括多个订单明细。(一个订单可以购买多个商品,每个商品的购买信息存在orderdetail信息),一对多

orderdetail ---> orders :一个订单明细只能包含在一个订单之中,一对一

[ orderdetail 与 items]

orderdetail ---> items :一个订单明细只对应一个商品信息,一对一

items ---> orderdetail :一个商品可以包含多个订单明细,一对多

【 没关系的表之间的业务关系】

[orders 与 items]

orders 和 items 之间可以通过orderdetail表建立关系

 

【建表语句】

/*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;

【插入测试数据】(先插入没有外键约束的数据)

INSERT INTO `items` VALUES (1, 台式机, 3000.0, 该电脑质量非常好!!!!, NULL, 2015-2-3 13:22:53);
INSERT INTO `items` VALUES (2, 笔记本, 6000.0, 笔记本性能好,质量好!!!!!, NULL, 2015-2-9 13:22:57);
INSERT INTO `items` VALUES (3, 背包, 200.0, 名牌背包,容量大质量好!!!!, NULL, 2015-2-6 13:23:02);

INSERT INTO `user` VALUES (1, 王五, 2016-1-5, 2, 天津);
INSERT INTO `user` VALUES (10, 张三, 2014-7-10, 1, 北京市);
INSERT INTO `user` VALUES (16, 张小明, 2016-2-9, 1, 浙江杭州);
INSERT INTO `user` VALUES (22, 陈小明, 2016-9-25, 1, 福建厦门);
INSERT INTO `user` VALUES (24, 张三丰, 2016-9-17, 1, 湖北武汉);
INSERT INTO `user` VALUES (25, 陈小明, 2016-2-17, 1, 上海);
INSERT INTO `user` VALUES (26, 王五, 2010-7-6, 2, 深圳);


INSERT INTO `orders` VALUES (3, 1, 1000010, 2016-8-16 13:22:35, NULL);
INSERT INTO `orders` VALUES (4, 1, 1000011, 2016-6-23 13:22:41, NULL);
INSERT INTO `orders` VALUES (5, 10, 1000012, 2016-9-22 16:13:23, NULL);


INSERT INTO `orderdetail` VALUES (1, 3, 1, 1);
INSERT INTO `orderdetail` VALUES (2, 3, 2, 3);
INSERT INTO `orderdetail` VALUES (3, 4, 3, 4);
INSERT INTO `orderdetail` VALUES (4, 4, 2, 3);

 

17_高级映射:一对一查询(使用resultType)

标签:

原文地址:http://www.cnblogs.com/HigginCui/p/5848849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!