JasperZhao

通过对商城项目的部分表关系进行分析,完成数据库表的设计

 

1 表关系分析

 

 

 

 

 

 

 

 

 

 

 

2 建库,建表

  1.创建名为 store的数据库, 对应商城项目

create database db6 character set utf8;

  

   2. 创建用户表

CREATE TABLE user (
  uid varchar(32) PRIMARY KEY,  -- 用户ID
  username varchar(20) , -- 用户名
  password varchar(20) , -- 密码
  telephone varchar(20) , -- 电话
  birthday date , -- 生日
  sex varchar(10) -- 性别
);
INSERT INTO USER VALUES 
(\'001\',\'渣渣辉\',\'123456\',\'13511112222\',\'2015-11-04\',\'\'),
(\'002\',\'药水哥\',\'123456\',\'13533334444\',\'1990-02-01\',\'\'),
(\'003\',\'大明白\',\'123456\',\'13544445555\',\'2015-11-03\',\'\'),
(\'004\',\'长海\',\'123456\',\'13566667777\',\'2000-02-01\',\'\'),
(\'005\',\'乔杉\',\'123456\',\'13588889999\',\'2000-02-01\',\'\');

 

  1. 创建订单表

CREATE TABLE orders (
  oid varchar(32)   PRIMARY KEY, -- 订单id
  ordertime datetime ,    -- 下单时间 
  total double , -- 总金额
  name varchar(20), -- 收货人姓名
  telephone varchar(20) , -- 电话
  address varchar(30) , -- 地址
  state int(11) ,  -- 订单状态
  uid varchar(32), -- 外键字段 对应用户表id
  CONSTRAINT ofk_0001 FOREIGN KEY (uid) REFERENCES user (uid)
);
-- 插入一条订单数据
INSERT INTO orders 
VALUES(\'order001\',\'2019-10-11\',5500,\'乔杉\',\'15512342345\',\'皇家洗浴\',0,\'001\');

 

  

  1. 创建商品分类表

CREATE TABLE category (
  cid varchar(32) PRIMARY KEY,
  cname varchar(20)
); 
INSERT INTO `category` VALUES (\'1\',\'手机数码\'),(\'2\',\'电脑办公\'),(\'3\',\'运动鞋服\'),(\'4\',\'图书音像\');

 

  1. 创建商品表

CREATE TABLE product (
  pid varchar(32)  PRIMARY KEY,    -- 商品id
  pname varchar(50) , -- 商品名称 
  price double, -- 商品价格
  pdesc varchar(255), -- 商品描述
  pflag int(11) , -- 商品状态 1 上架 ,0 下架
  cid varchar(32) , -- 外键对应 分类表id
  KEY sfk_0001 (cid), 
  CONSTRAINT sfk_0001 FOREIGN KEY (cid) REFERENCES category (cid)
);
INSERT INTO `product` VALUES 
(\'1\',\'小米6\',2200,\'小米 移动联通电信4G手机 双卡双待\',0,\'1\'),
(\'2\',\'华为Mate9\',2599,\'华为 双卡双待 高清大屏\',0,\'1\'),
(\'3\',\'OPPO11\',3000,\'移动联通 双4G手机\',0,\'1\'),
(\'4\',\'华为荣耀\',1499,\'3GB内存标准版 黑色 移动4G手机\',0,\'1\'),
(\'5\',\'华硕台式电脑\',5000,\'爆款直降,满千减百\',0,\'2\'),
(\'6\',\'MacBook\',6688,\'128GB 闪存\',0,\'2\'),
(\'7\',\'ThinkPad\',4199,\'轻薄系列1)\',0,\'2\'),
(\'8\',\'联想小新\',4499,\'14英寸超薄笔记本电脑\',0,\'2\'),
(\'9\',\'李宁音速6\',500,\'实战篮球鞋\',0,\'3\'),
(\'10\',\'AJ11\',3300,\'乔丹实战系列\',0,\'3\'),
(\'11\',\'AJ1\',5800,\'精神小伙系列\',0,\'3\');

 

  6. 订单项表 (中间表)

-- 订单项表
CREATE TABLE orderitem (
  itemid VARCHAR(32) PRIMARY KEY, -- 订单项ID
  pid VARCHAR(32),  -- 外键 对应商品表 id
  oid VARCHAR(32), -- 外键 对应订单表 id
  KEY fk_0001 (pid),
  KEY fk_0002 (oid),
  CONSTRAINT fk_0001 FOREIGN KEY (pid) REFERENCES product (pid),
  CONSTRAINT fk_0002 FOREIGN KEY (oid) REFERENCES orders (oid)
);
-- 向中间表中插入两条数据
INSERT INTO orderitem VALUES(\'item001\',\'1\',\'order001\');
INSERT INTO orderitem VALUES(\'item002\',\'11\',\'order001\');

 

分类:

技术点:

相关文章: