一对一、一对多、多对多-研究用

2016-12-14 09:49:14来源:oschina作者:高处胜寒人点击

/*
Navicat MariaDB Data Transfer
Source Server: 本地数据库-研究用
Source Server Version : 100016
Source Host: localhost:3306
Source Database: xiaoyu_test
Target Server Type: MariaDB
Target Server Version : 100016
File Encoding: 65001
Date: 2016-12-13 16:05:00
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for items
-- ----------------------------
DROP TABLE IF EXISTS `items`;
CREATE TABLE `items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`itemsname` 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=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='商品表';
-- ----------------------------
-- Records of items
-- ----------------------------
INSERT INTO `items` VALUES ('1', '台式机', '3000.0', '该电脑质量非常好!', null, '2015-07-07 13:28:53');
INSERT INTO `items` VALUES ('2', '笔记本', '6000.0', '笔记本性能好,质量好!', null, '2015-07-08 13:22:57');
INSERT INTO `items` VALUES ('3', '背包', '200.0', '名牌背包,容量大质量好!', null, '2015-07-10 13:25:02');
INSERT INTO `items` VALUES ('4', '台式机', '3000.0', '该电脑质量非常好!', null, '2015-07-07 13:28:53');
INSERT INTO `items` VALUES ('5', '笔记本', '6000.0', '笔记本性能好,质量好!', null, '2015-07-08 13:22:57');
INSERT INTO `items` VALUES ('6', '背包', '200.0', '名牌背包,容量大质量好!', null, '2015-07-10 13:25:02');
-- ----------------------------
-- Table structure for orderdetail
-- ----------------------------
DROP TABLE IF EXISTS `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`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='订单明细表';
-- ----------------------------
-- Records of orderdetail
-- ----------------------------
INSERT INTO `orderdetail` VALUES ('1', '1', '1', '1');
INSERT INTO `orderdetail` VALUES ('2', '1', '2', '3');
INSERT INTO `orderdetail` VALUES ('3', '2', '3', '4');
INSERT INTO `orderdetail` VALUES ('4', '3', '2', '3');
INSERT INTO `orderdetail` VALUES ('5', '1', '1', '1');
INSERT INTO `orderdetail` VALUES ('6', '1', '2', '3');
INSERT INTO `orderdetail` VALUES ('7', '2', '3', '4');
INSERT INTO `orderdetail` VALUES ('8', '3', '2', '3');
-- ----------------------------
-- Table structure for orders
-- ----------------------------
DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL COMMENT '下单用户id',
`number` varchar(30) NOT NULL COMMENT '订单号',
`createtime` datetime NOT NULL COMMENT '创建订单时间',
`note` varchar(100) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
KEY `FK_orders_1` (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='订单表';
-- ----------------------------
-- Records of orders
-- ----------------------------
INSERT INTO `orders` VALUES ('1', '1', '1000010', '2015-06-04 13:22:35', null);
INSERT INTO `orders` VALUES ('2', '1', '1000011', '2015-07-08 13:22:41', null);
INSERT INTO `orders` VALUES ('3', '2', '1000012', '2015-07-17 14:13:23', null);
INSERT INTO `orders` VALUES ('4', '3', '1000012', '2015-07-16 18:13:23', null);
INSERT INTO `orders` VALUES ('5', '4', '1000012', '2015-07-15 19:13:23', null);
INSERT INTO `orders` VALUES ('6', '5', '1000012', '2015-07-14 17:13:23', null);
INSERT INTO `orders` VALUES ('7', '6', '1000012', '2015-07-13 16:13:23', null);
INSERT INTO `orders` VALUES ('8', '1', '1000010', '2015-06-04 13:22:35', null);
INSERT INTO `orders` VALUES ('9', '1', '1000011', '2015-07-08 13:22:41', null);
INSERT INTO `orders` VALUES ('10', '2', '1000012', '2015-07-17 14:13:23', null);
INSERT INTO `orders` VALUES ('11', '3', '1000012', '2015-07-16 18:13:23', null);
INSERT INTO `orders` VALUES ('12', '4', '1000012', '2015-07-15 19:13:23', null);
INSERT INTO `orders` VALUES ('13', '5', '1000012', '2015-07-14 17:13:23', null);
INSERT INTO `orders` VALUES ('14', '6', '1000012', '2015-07-13 16:13:23', null);
-- ----------------------------
-- Table structure for t_user
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_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=MyISAM AUTO_INCREMENT=23 DEFAULT CHARSET=utf8 COMMENT='用户表';
-- ----------------------------
-- Records of t_user
-- ----------------------------
INSERT INTO `t_user` VALUES ('1', '王五', null, '2', null);
INSERT INTO `t_user` VALUES ('2', '张三', '2014-07-10', '1', '北京市');
INSERT INTO `t_user` VALUES ('3', '张小明', null, '1', '河南郑州');
INSERT INTO `t_user` VALUES ('4', '陈小明', null, '1', '河南郑州');
INSERT INTO `t_user` VALUES ('5', '张三丰', null, '1', '河南郑州');
INSERT INTO `t_user` VALUES ('6', '陈小明', null, '1', '河南郑州');
INSERT INTO `t_user` VALUES ('7', '王五', null, null, null);
INSERT INTO `t_user` VALUES ('8', '小A', '2015-06-27', '2', '北京');
INSERT INTO `t_user` VALUES ('9', '小B', '2015-06-27', '2', '北京');
INSERT INTO `t_user` VALUES ('10', '小C', '2015-06-27', '1', '北京');
INSERT INTO `t_user` VALUES ('11', '小D', '2015-06-27', '2', '北京');
INSERT INTO `t_user` VALUES ('12', '王五', null, '2', null);
INSERT INTO `t_user` VALUES ('13', '张三', '2014-07-10', '1', '北京市');
INSERT INTO `t_user` VALUES ('14', '张小明', null, '1', '河南郑州');
INSERT INTO `t_user` VALUES ('15', '陈小明', null, '1', '河南郑州');
INSERT INTO `t_user` VALUES ('16', '张三丰', null, '1', '河南郑州');
INSERT INTO `t_user` VALUES ('17', '陈小明', null, '1', '河南郑州');
INSERT INTO `t_user` VALUES ('18', '王五', null, null, null);
INSERT INTO `t_user` VALUES ('19', '小A', '2015-06-27', '2', '北京');
INSERT INTO `t_user` VALUES ('20', '小B', '2015-06-27', '2', '北京');
INSERT INTO `t_user` VALUES ('21', '小C', '2015-06-27', '1', '北京');
INSERT INTO `t_user` VALUES ('22', '小D', '2015-06-27', '2', '北京');

(1).每张表记录的数据内容:分模块对每张表记录的内容进行熟悉,相当于你学习系统需求(功能)的过程;


(2).每张表重要的字段设置:非空字段、外键字段;


(3).数据库级别表与表之间的关系:外键关系;


(4).表与表之间的业务关系:在分析表与表之间的业务关系时一定要建立在某个业务意义基础上去分析。


3.针对订单商品模型的数据库思路分析:


  用户表:t_user-->记录了购买商品的用户信息


  订单表:orders-->记录了用户所创建的订单(购买商品的订单)


  订单明细表:orderdetail-->记录了订单的详细信息即购买商品的信息


  商品表:items-->记录了商品信息


表与表之间的业务关系:


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


  先分析数据级别之间有关系的表之间的业务关系:


t_user和orders:


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


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


orders和orderdetail:


  orders--->orderdetail:一个订单可以包括多个订单明细,因为一个订单可以购买多个商品,每个商品的购买信息在orderdetail记录,一对多关系


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


orderdetail和itesm:


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


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


再分析数据库级别没有关系的表之间是否有业务关系:


orders和items:


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


4.分析之后画出对应的图,方便直观的了解业务关系


/


详细信息:http://www.2cto.com/database/201605/511916.html

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台