需求分析——用例图:
概要设计——数据模块图:
概要设计——功能模块图:
详细设计——购物流程图:
库表设计——ER图:
.sql:
-- 类别表
CREATE TABLE category(
id number PRIMARY KEY ,
NAME VARCHAR(20), -- 类别名称
parent_id number, -- 所属大类别id
CONSTRAINT fk_a FOREIGN KEY (parent_id) REFERENCES category(id) ON DELETE CASCADE
);
-- 产品表
CREATE TABLE product(
id number PRIMARY KEY,
b_id number, -- 所属大类别
s_id number, -- 所属小类别
NAME VARCHAR(30), -- 产品名称
intro VARCHAR(255), -- 产品介绍
photo VARCHAR(255), -- 图片
address VARCHAR(20), -- 产地
price NUMBER(8,2), -- 价格
discount NUMBER(8,2), -- 折扣
saled number, -- 总销量
num number, -- 剩余数量
state char(1), -- 产品状态,1:上架 0:下架
CONSTRAINT fk_b FOREIGN KEY (b_id) REFERENCES category(id) ON DELETE CASCADE,
CONSTRAINT fk_c FOREIGN KEY (s_id) REFERENCES category(id) ON DELETE CASCADE
);
-- 用户表
CREATE TABLE customer(
id number PRIMARY KEY,
account VARCHAR(30) UNIQUE, -- 账号
sex char(1), -- 性别 1:男 0:女
PASSWORD VARCHAR(30), -- 密码
u_name VARCHAR(20), -- 用户名
photo VARCHAR(255), -- 头像
address VARCHAR(50), -- 默认收货地址
phone VARCHAR(20) -- 手机号码
);
-- 管理员表
CREATE TABLE admin(
id number PRIMARY KEY,
account VARCHAR(30) UNIQUE, -- 账号
PASSWORD VARCHAR(30), -- 密码
phone VARCHAR(20) -- 手机号码
);
-- create sequence
create sequence seq_doing4
minvalue 1
maxvalue 99999
start with 1
increment by 1
nocache;
-- 订单表
CREATE TABLE ordert(
id number PRIMARY KEY,
o_number VARCHAR(20), -- 订单号
c_id INT, -- 用户id
address VARCHAR(50), -- 收货地址
total_cost number(8,2), -- 总金额
sale_time DATE, -- 交易时间
CONSTRAINT fk_d FOREIGN KEY (c_id) REFERENCES customer(id) ON DELETE CASCADE
);
-- 订单明细表
CREATE TABLE order_list(
o_id number, -- 订单id
p_id number, -- 产品id
num number, -- 数量
price number(8,2), -- 价格
CONSTRAINT pk_a PRIMARY KEY (o_id,p_id),
CONSTRAINT fk_e FOREIGN KEY (o_id) REFERENCES ordert(id) ON DELETE CASCADE,
CONSTRAINT fk_f FOREIGN KEY (p_id) REFERENCES product(id) ON DELETE CASCADE
);
-- 购物车
CREATE TABLE cart(
id number,
c_id number, -- 用户id
p_id number, -- 产品id
num number, -- 产品数量
price number(8,2), -- 价格
total_cost number(8,2), -- 总金额
CONSTRAINT pk_b PRIMARY KEY (id),
CONSTRAINT fk_g FOREIGN KEY (p_id) REFERENCES product(id) ON DELETE CASCADE,
CONSTRAINT fk_h FOREIGN KEY (c_id) REFERENCES customer(id) ON DELETE CASCADE
);
---评价表
CREATE TABLE p_comment (
p_id number NOT NULL,
o_id number NOT NULL,
comments VARCHAR(255) DEFAULT NULL,
c_time TIMESTAMP DEFAULT NULL,
PRIMARY KEY (p_id,o_id),
CONSTRAINT FK1_comment FOREIGN KEY (o_id) REFERENCES ordert (id) ON DELETE CASCADE,
CONSTRAINT FK_comment FOREIGN KEY (p_id) REFERENCES product (id) ON DELETE CASCADE
);