-- 显式执行一次;只创建阅读目标相关表,不修改已有业务表。 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='目标书籍成员;不关联书架表,避免移出书架时丢失目标成员';