77 lines
4.6 KiB
SQL
77 lines
4.6 KiB
SQL
-- 风采墙栏目表,适用于 MySQL 8。
|
||
CREATE TABLE IF NOT EXISTS `spread_category` (
|
||
`id` varchar(32) NOT NULL COMMENT 'ID',
|
||
`parentId` varchar(32) NOT NULL DEFAULT '0' COMMENT '父栏目ID,0表示顶级栏目',
|
||
`name` varchar(100) NOT NULL COMMENT '栏目名称',
|
||
`code` varchar(50) DEFAULT NULL COMMENT '栏目编码(兼容预置数据,页面无需维护)',
|
||
`sortOrder` int NOT NULL DEFAULT 255 COMMENT '排序,数值越小越靠前',
|
||
`visible` tinyint NOT NULL DEFAULT 1 COMMENT '是否可见:0否,1是',
|
||
`slider` tinyint NOT NULL DEFAULT 0 COMMENT '是否参与轮播:0否,1是',
|
||
`createdBy` varchar(32) DEFAULT NULL COMMENT '创建人',
|
||
`createdAt` bigint DEFAULT NULL COMMENT '创建时间',
|
||
`updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人',
|
||
`updatedAt` bigint DEFAULT NULL COMMENT '修改时间',
|
||
`delFlag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_spread_category_code` (`code`),
|
||
KEY `idx_spread_category_parent` (`parentId`),
|
||
KEY `idx_spread_category_visible_sort` (`visible`, `sortOrder`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='风采墙栏目';
|
||
|
||
-- 风采墙内容表。
|
||
CREATE TABLE IF NOT EXISTS `spread_content` (
|
||
`id` varchar(32) NOT NULL COMMENT 'ID',
|
||
`categoryId` varchar(32) NOT NULL COMMENT '栏目ID',
|
||
`categoryName` varchar(100) NOT NULL COMMENT '栏目名称',
|
||
`title` varchar(300) NOT NULL COMMENT '标题',
|
||
`subTitle` varchar(255) DEFAULT NULL COMMENT '副标题',
|
||
`summary` varchar(1000) DEFAULT NULL COMMENT '摘要',
|
||
`contentBody` longtext COMMENT 'HTML正文',
|
||
`thumbUrl` varchar(1000) DEFAULT NULL COMMENT '封面图',
|
||
`sliderImages` longtext COMMENT '轮播图片JSON',
|
||
`isTop` tinyint NOT NULL DEFAULT 0 COMMENT '是否置顶',
|
||
`isRecommend` tinyint NOT NULL DEFAULT 0 COMMENT '是否推荐',
|
||
`isHeadline` tinyint NOT NULL DEFAULT 0 COMMENT '是否头条',
|
||
`viewCount` int NOT NULL DEFAULT 0 COMMENT '浏览量',
|
||
`sortOrder` int NOT NULL DEFAULT 255 COMMENT '排序',
|
||
`isPublished` tinyint NOT NULL DEFAULT 0 COMMENT '是否发布',
|
||
`publishedAt` bigint DEFAULT NULL COMMENT '发布时间',
|
||
`createdBy` varchar(32) DEFAULT NULL COMMENT '创建人',
|
||
`createdAt` bigint DEFAULT NULL COMMENT '创建时间',
|
||
`updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人',
|
||
`updatedAt` bigint DEFAULT NULL COMMENT '修改时间',
|
||
`delFlag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_spread_content_category` (`categoryId`),
|
||
KEY `idx_spread_content_publish` (`isPublished`, `publishedAt`),
|
||
KEY `idx_spread_content_top_sort` (`isTop`, `sortOrder`),
|
||
KEY `idx_spread_content_created` (`createdAt`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='风采墙内容';
|
||
|
||
-- 初始化栏目,仅在对应编码不存在时插入,脚本可重复执行。
|
||
INSERT INTO `spread_category`
|
||
(`id`, `parentId`, `name`, `code`, `sortOrder`, `visible`, `slider`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`)
|
||
SELECT '9f5c0100000000000000000000000001', '0', '风采展示', 'style_wall', 1, 1, 1, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
|
||
WHERE NOT EXISTS (SELECT 1 FROM `spread_category` WHERE `code` = 'style_wall');
|
||
|
||
INSERT INTO `spread_category`
|
||
(`id`, `parentId`, `name`, `code`, `sortOrder`, `visible`, `slider`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`)
|
||
SELECT '9f5c0100000000000000000000000002', p.id, '劳模风采', 'model_worker_style', 1, 1, 1, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
|
||
FROM `spread_category` p
|
||
WHERE p.code = 'style_wall'
|
||
AND NOT EXISTS (SELECT 1 FROM `spread_category` WHERE `code` = 'model_worker_style');
|
||
|
||
INSERT INTO `spread_category`
|
||
(`id`, `parentId`, `name`, `code`, `sortOrder`, `visible`, `slider`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`)
|
||
SELECT '9f5c0100000000000000000000000003', p.id, '巾帼风采', 'women_style', 2, 1, 1, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
|
||
FROM `spread_category` p
|
||
WHERE p.code = 'style_wall'
|
||
AND NOT EXISTS (SELECT 1 FROM `spread_category` WHERE `code` = 'women_style');
|
||
|
||
INSERT INTO `spread_category`
|
||
(`id`, `parentId`, `name`, `code`, `sortOrder`, `visible`, `slider`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`)
|
||
SELECT '9f5c0100000000000000000000000004', p.id, '教工风采', 'faculty_style', 3, 1, 1, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
|
||
FROM `spread_category` p
|
||
WHERE p.code = 'style_wall'
|
||
AND NOT EXISTS (SELECT 1 FROM `spread_category` WHERE `code` = 'faculty_style');
|