数据库设计
sql
CREATE TABLE illustration (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
story_id BIGINT NULL,
file_path VARCHAR(255) NOT NULL COMMENT '本地或对象存储路径',
CONSTRAINT fk_illustration_story
FOREIGN KEY (story_id) REFERENCES story(id)
ON UPDATE CASCADE
ON DELETE SET NULL
)
CREATE TABLE sound (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
story_id BIGINT NULL,
file_path VARCHAR(255) NOT NULL COMMENT '本地或对象存储路径',
CONSTRAINT fk_sound_story
FOREIGN KEY (story_id) REFERENCES story(id)
ON UPDATE CASCADE
ON DELETE SET NULL
)
CREATE TABLE story (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(120) NOT NULL,
body TEXT NOT NULL COMMENT '正文',
keywords VARCHAR(255) NOT NULL,
status INT DEFAULT 1
);
-- 给story表添加生成时间字段,默认值为当前时间,非空
ALTER TABLE story
ADD COLUMN create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '故事生成时间',
-- 添加user_id字段,类型与user表的id一致(BIGINT UNSIGNED),非空
ADD COLUMN user_id BIGINT UNSIGNED NOT NULL COMMENT '关联用户表的主键ID(外键)';
-- 给user_id创建外键,关联user表的id字段
ALTER TABLE story
ADD CONSTRAINT fk_story_user_id
FOREIGN KEY (user_id) REFERENCES user(id)
-- 可选:设置删除用户时的行为,如CASCADE(级联删除故事)/RESTRICT(禁止删除有故事的用户)/SET NULL(需user_id允许为空)
ON DELETE RESTRICT
ON UPDATE CASCADE;
-- 给story表添加点赞量字段,默认值0(初始无点赞),非负整数
ALTER TABLE story
ADD COLUMN like_count INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '故事点赞量(非负整数,默认0)';
-- 1. 建表(MySQL 语法)
CREATE TABLE story_status (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(10)
);
-- 2. 先灌入 3 条最常用状态
INSERT INTO story_status(name) VALUES
('故事'),
('有图'),
('有声');
-- 创建用户表(基础版)
CREATE TABLE user (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户唯一ID(主键)',
username VARCHAR(50) NOT NULL COMMENT '用户名(登录名/昵称)',
phone CHAR(11) NOT NULL COMMENT '手机号(唯一,用于登录/验证)',
email VARCHAR(100) DEFAULT NULL COMMENT '邮箱(唯一,可为空)',
password VARCHAR(100) NOT NULL COMMENT '密码(加密存储,如BCrypt/SHA256)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_phone` (`phone`), -- 手机号唯一索引
KEY `idx_username` (`username`) -- 用户名普通索引
);
-- 新增一个INT类型的字段(默认可为空,无默认值)
ALTER TABLE user
ADD COLUMN count INT NOT NULL DEFAULT 3 COMMENT '用量',
ADD COLUMN zan INT NOT NULL DEFAULT 0 COMMENT '点赞数';
浙公网安备 33010602011771号