Files
WeReadBoard/migrations/001_reading_goals.sql
T

21 lines
1.1 KiB
SQL

-- 显式执行一次;只创建阅读目标相关表,不修改已有业务表。
CREATE TABLE IF NOT EXISTS reading_goals (
id VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
name VARCHAR(60) NOT NULL,
start_date DATE NOT NULL,
end_date DATE NOT NULL,
sources JSON NOT NULL COMMENT '加入目标时的书单名称,不追踪书单后续变更',
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='阅读目标';
CREATE TABLE IF NOT EXISTS reading_goal_books (
goal_id VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
book_id VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
PRIMARY KEY (goal_id, book_id),
CONSTRAINT fk_reading_goal_books_goal FOREIGN KEY (goal_id)
REFERENCES reading_goals (id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='目标书籍成员;不关联书架表,避免移出书架时丢失目标成员';