50 lines
1.9 KiB
SQL
50 lines
1.9 KiB
SQL
-- =====================================================================================
|
||
-- 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);
|