Files
xuanzhi-service/server/.ai-specs/doc-sql/book.sql
wdh-home 1e33640629
Some checks failed
CI / init (pull_request) Has been cancelled
CI / Frontend node 18.16.0 (pull_request) Has been cancelled
CI / Backend go (1.22) (pull_request) Has been cancelled
CI / release-pr (pull_request) Has been cancelled
CI / devops-test (1.22, 18.16.0) (pull_request) Has been cancelled
CI / release-please (pull_request) Has been cancelled
CI / devops-prod (1.22, 18.x) (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
基础项目
2026-04-26 15:32:21 +08:00

67 lines
3.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- # 书籍信息表
--
-- ## 基本信息
--
-- 模块book
-- 表名book
-- 模型model/book/book.go
-- 迁移接入initialize/gorm_biz.go
-- 删除策略硬删表
-- 书籍类型字典book_type
-- 时代标签字典book_era_tag
-- 完结状态字典book_completion_status
-- 上下架状态字典book_publish_status
-- 职责承载书籍主资料展示聚合值和章节来源配置是书籍列表详情搜索和推荐的核心主体
CREATE TABLE book (
id bigserial PRIMARY KEY,
created_at timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
title varchar(255) NOT NULL,
subtitle varchar(255),
book_type varchar(64) NOT NULL,
era_tag varchar(32) NOT NULL DEFAULT 'unknown',
cover_url varchar(500),
publisher varchar(128),
published_at date,
intro text,
hot_score bigint NOT NULL DEFAULT 0 CHECK (hot_score >= 0),
rating numeric(3,1) NOT NULL DEFAULT 0.0 CHECK (rating >= 0 AND rating <= 10),
comment_count bigint NOT NULL DEFAULT 0 CHECK (comment_count >= 0),
word_count bigint NOT NULL DEFAULT 0 CHECK (word_count >= 0),
completion_status varchar(32) NOT NULL DEFAULT 'serializing',
publish_status varchar(32) NOT NULL DEFAULT 'draft',
series_id bigint,
series_sort integer NOT NULL DEFAULT 0 CHECK (series_sort >= 0),
raw_txt_url varchar(500)
);
COMMENT ON TABLE book IS '书籍信息表';
COMMENT ON COLUMN book.id IS '主键';
COMMENT ON COLUMN book.created_at IS '创建时间';
COMMENT ON COLUMN book.updated_at IS '更新时间';
COMMENT ON COLUMN book.title IS '书名主标题';
COMMENT ON COLUMN book.subtitle IS '书籍副标题';
COMMENT ON COLUMN book.book_type IS '书籍类型字典值对应 book_type';
COMMENT ON COLUMN book.era_tag IS '时代标签字典值对应 book_era_tag';
COMMENT ON COLUMN book.cover_url IS '封面图片 URL';
COMMENT ON COLUMN book.publisher IS '出版社名称';
COMMENT ON COLUMN book.published_at IS '出版日期';
COMMENT ON COLUMN book.intro IS '书籍简介';
COMMENT ON COLUMN book.hot_score IS '热度聚合值';
COMMENT ON COLUMN book.rating IS '书籍评分范围 0-10';
COMMENT ON COLUMN book.comment_count IS '点评数聚合值';
COMMENT ON COLUMN book.word_count IS '书籍总字数';
COMMENT ON COLUMN book.completion_status IS '书籍完结状态字典值对应 book_completion_status';
COMMENT ON COLUMN book.publish_status IS '书籍上下架状态字典值对应 book_publish_status';
COMMENT ON COLUMN book.series_id IS '所属系列 ID可为空';
COMMENT ON COLUMN book.series_sort IS '同系列内展示排序';
COMMENT ON COLUMN book.raw_txt_url IS '原始 txt 文件 URL';
CREATE INDEX idx_book_book_type ON book (book_type);
CREATE INDEX idx_book_era_tag ON book (era_tag);
CREATE INDEX idx_book_publish_status ON book (publish_status);
CREATE INDEX idx_book_completion_status ON book (completion_status);
CREATE INDEX idx_book_series_id_series_sort ON book (series_id, series_sort);
CREATE INDEX idx_book_created_at ON book (created_at);