-- ===================================================================================== -- Schema: 内容管理模块核心表 -- 位置:docs/sql/10_schema/cms/ml_cms_tables_v1.sql -- 对象类型:Schema (DDL) -- 版本:v1 -- 说明:包含文章分类及文章主表定义 -- ===================================================================================== -- 1. 文章分类表 CREATE TABLE IF NOT EXISTS public.ml_article_categories ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name TEXT NOT NULL, icon TEXT NULL, sort INTEGER NOT NULL DEFAULT 0, status SMALLINT NOT NULL DEFAULT 1, -- 1: 启用, 0: 禁用 created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); -- 唯一性约束 CREATE UNIQUE INDEX IF NOT EXISTS ml_article_categories_name_uniq ON public.ml_article_categories (name); -- 2. 文章主表 CREATE TABLE IF NOT EXISTS public.ml_articles ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), category_id UUID NOT NULL REFERENCES public.ml_article_categories(id), title TEXT NOT NULL, author TEXT NULL, image TEXT NULL, -- 文章封面图 description TEXT NULL, -- 文章简介 content TEXT NOT NULL, -- 文章内容 (富文本) status SMALLINT NOT NULL DEFAULT 0, -- 0: 未发布, 1: 已发布 views INTEGER NOT NULL DEFAULT 0, -- 浏览量 is_banner BOOLEAN NOT NULL DEFAULT FALSE, -- 是否展示在 banner is_hot BOOLEAN NOT NULL DEFAULT FALSE, -- 是否热门 linked_product_id UUID NULL, -- 关联商品ID (可选) created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); -- 常用查询索引 CREATE INDEX IF NOT EXISTS ml_articles_category_id_idx ON public.ml_articles (category_id); CREATE INDEX IF NOT EXISTS ml_articles_status_idx ON public.ml_articles (status); CREATE INDEX IF NOT EXISTS ml_articles_created_at_idx ON public.ml_articles (created_at DESC);