43 lines
2.5 KiB
SQL
43 lines
2.5 KiB
SQL
|
|
-- ============================================================
|
|||
|
|
-- 04_news.sql
|
|||
|
|
-- 新闻管理:文章 CRUD、相关推荐
|
|||
|
|
-- 对应 proposal.md 第 5 节
|
|||
|
|
-- ============================================================
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------------------
|
|||
|
|
-- 5.1 新闻文章
|
|||
|
|
-- -----------------------------------------------------------
|
|||
|
|
CREATE TABLE IF NOT EXISTS `www_news_articles` (
|
|||
|
|
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|||
|
|
`title_zh` VARCHAR(200) NOT NULL COMMENT '文章标题(中文)',
|
|||
|
|
`title_en` VARCHAR(200) NOT NULL COMMENT '文章标题(英文)',
|
|||
|
|
`slug` VARCHAR(200) NOT NULL COMMENT 'URL 路径标识,如 new-product-launch',
|
|||
|
|
`summary_zh` VARCHAR(300) NOT NULL DEFAULT '' COMMENT '文章摘要(中文,≤100字)',
|
|||
|
|
`summary_en` VARCHAR(300) NOT NULL DEFAULT '' COMMENT '文章摘要(英文)',
|
|||
|
|
`cover_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '封面图路径(16:9)',
|
|||
|
|
`content_zh` MEDIUMTEXT COMMENT '正文内容(中文,富文本)',
|
|||
|
|
`content_en` MEDIUMTEXT COMMENT '正文内容(英文,富文本)',
|
|||
|
|
`status` VARCHAR(20) NOT NULL DEFAULT 'draft' COMMENT '发布状态: draft / published / offline',
|
|||
|
|
`published_at` DATETIME DEFAULT NULL COMMENT '发布时间(可为未来时间,定时发布)',
|
|||
|
|
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|||
|
|
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `uk_slug` (`slug`),
|
|||
|
|
KEY `idx_status` (`status`, `published_at`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
|||
|
|
COMMENT='新闻文章';
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------------------
|
|||
|
|
-- 5.2 文章相关推荐(手动指定,最多 3 篇)
|
|||
|
|
-- -----------------------------------------------------------
|
|||
|
|
CREATE TABLE IF NOT EXISTS `www_news_recommendations` (
|
|||
|
|
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|||
|
|
`article_id` BIGINT UNSIGNED NOT NULL COMMENT '文章 ID',
|
|||
|
|
`recommended_id` BIGINT UNSIGNED NOT NULL COMMENT '推荐文章 ID',
|
|||
|
|
`sort_order` INT NOT NULL DEFAULT 0 COMMENT '推荐排序',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `uk_article_recommended` (`article_id`, `recommended_id`),
|
|||
|
|
KEY `idx_article` (`article_id`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
|||
|
|
COMMENT='文章手动推荐关联';
|