1. 程式人生 > 其它 >資料庫:綜合案例 - 商城案例表設計

資料庫:綜合案例 - 商城案例表設計

通過對商城專案的部分表關係進行分析,完成資料庫表的設計

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');