创建一个校园管理系统——主营方向是二手物品交易。
要求:给出DDL语句DML语句,对应的外键逻辑关系清晰,并上传ER图,每张表的数据不能低于10条。
需要思考:二手物品交易需要什么表,表之间关系都是什么,插入数据时要注意什么。
DDL建表语句:
-- 1. 用户表
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(200) NOT NULL,
phone VARCHAR(20),
is_admin TINYINT DEFAULT 0
);
-- 2. 商品分类表
CREATE TABLE category (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL UNIQUE
);
-- 3. 商品表(外键:发布者、分类)
CREATE TABLE goods (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
price DECIMAL(10,2) NOT NULL,
description TEXT,
status VARCHAR(20) DEFAULT '在售',
create_time DATETIME DEFAULT NOW(),
user_id INT,
cate_id INT,
FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE SET NULL,
FOREIGN KEY (cate_id) REFERENCES category(id) ON DELETE SET NULL
);
-- 4. 收藏表(联合外键)
CREATE TABLE collect (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
goods_id INT,
FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE CASCADE,
FOREIGN KEY (goods_id) REFERENCES goods(id) ON DELETE CASCADE
);
-- 5. 订单表
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
goods_id INT,
create_time DATETIME DEFAULT NOW(),
status VARCHAR(20) DEFAULT '已完成',
FOREIGN KEY (user_id) REFERENCES user(id),
FOREIGN KEY (goods_id) REFERENCES goods(id)
);
插入用户语句:
INSERT INTO user (username, password, phone, is_admin) VALUES
('admin', '123456', '13800000001', 1),
('student01', '123456', '13800000002', 0),
('student02', '123456', '13800000003', 0),
('student03', '123456', '13800000004', 0),
('student04', '123456', '13800000005', 0),
('student05', '123456', '13800000006', 0),
('student06', '123456', '13800000007', 0),
('student07', '123456', '13800000008', 0),
('student08', '123456', '13800000009', 0),
('student09', '123456', '13800000010', 0),
('student10', '123456', '13800000011', 0),
('student11', '123456', '13800000012', 0);
插入分类语句:
INSERT INTO category (name) VALUES
('书籍教材'),('数码产品'),('生活用品'),('服饰鞋包'),('体育用品'),('其他');
插入商品语句:
INSERT INTO goods (title, price, description, status, user_id, cate_id) VALUES
('考研数学真题', 25.5, '九成新,无笔记', '在售', 2, 1),
('大学英语四级', 15.0, '全新未拆封', '在售', 3, 1),
('iPhone充电器', 30.0, '原装正品', '在售', 4, 2),
('蓝牙耳机', 50.0, '使用半年', '已售', 5, 2),
('折叠桌', 40.0, '宿舍神器', '在售', 6, 3),
('晾衣架', 15.0, '几乎全新', '在售', 7, 3),
('牛仔裤', 59.0, '尺码30', '在售', 8, 4),
('运动鞋42码', 99.0, '穿2次', '已售', 9, 4),
('篮球', 60.0, '耐磨好用', '在售', 10, 5),
('瑜伽垫', 35.0, '加厚款', '在售', 11, 5),
('计算器', 20.0, '考试专用', '在售', 2, 1),
('鼠标', 25.0, '静音无线', '在售', 3, 2),
('抱枕', 10.0, '可爱卡通', '在售', 4, 3),
('围巾', 29.0, '冬季保暖', '在售', 5, 4),
('羽毛球拍', 75.0, '双拍送球', '已售', 6, 5);
插入收藏语句:
INSERT INTO collect (user_id, goods_id) VALUES
(2,3),(2,5),(3,1),(3,6),(4,2),(4,7),
(5,4),(5,9),(6,8),(6,10),(7,12),(7,15);
插入订单语句:
INSERT INTO orders (user_id, goods_id, status) VALUES
(3,4,'已完成'),
(6,8,'已完成'),
(7,15,'已完成'),
(2,11,'已完成'),
(4,13,'已完成'),
(5,14,'已完成'),
(8,2,'已完成'),
(9,5,'已完成'),
(10,3,'已完成'),
(11,7,'已完成');
19

被折叠的 条评论
为什么被折叠?



