mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-18 01:25:28 +08:00
113 lines
7.9 KiB
SQL
113 lines
7.9 KiB
SQL
-- H5 组件库系统建表脚本
|
||
-- 创建时间:2026-03-06
|
||
|
||
-- 1. 组件分类表 (两级分类)
|
||
CREATE TABLE `h5_component_category` (
|
||
[id](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-admin\src\test\java\org\dromara\test\DemoUnitTest.java#L37-L37) BIGINT NOT NULL COMMENT '主键 ID',
|
||
`parent_id` BIGINT NOT NULL DEFAULT 0 COMMENT '父分类 ID(0 为一级分类)',
|
||
`name` VARCHAR(100) NOT NULL COMMENT '分类名称',
|
||
`type` VARCHAR(50) NOT NULL COMMENT '分类类型 (text/image/extension/background/music)',
|
||
`sort` INT NOT NULL DEFAULT 0 COMMENT '排序值',
|
||
`icon` VARCHAR(500) DEFAULT NULL COMMENT '分类图标 URL',
|
||
`description` VARCHAR(500) DEFAULT NULL COMMENT '分类描述',
|
||
`is_system` TINYINT NOT NULL DEFAULT 0 COMMENT '是否系统预设 (1:是 0:否)',
|
||
`create_time` BIGINT NOT NULL COMMENT '创建时间 (Unix 时间戳秒级)',
|
||
`update_time` BIGINT DEFAULT NULL COMMENT '更新时间 (Unix 时间戳秒级)',
|
||
PRIMARY KEY ([id](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-admin\src\test\java\org\dromara\test\DemoUnitTest.java#L37-L37)),
|
||
INDEX `idx_parent_id` (`parent_id`),
|
||
INDEX `idx_type` (`type`),
|
||
INDEX `idx_sort` (`sort`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='H5 组件分类表';
|
||
|
||
-- 2. 组件表
|
||
CREATE TABLE `h5_component` (
|
||
[id](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-admin\src\test\java\org\dromara\test\DemoUnitTest.java#L37-L37) BIGINT NOT NULL COMMENT '主键 ID',
|
||
`name` VARCHAR(200) NOT NULL COMMENT '组件名称',
|
||
`type` VARCHAR(50) NOT NULL COMMENT '组件类型 (text/image/form/map/background/music)',
|
||
`thumbnail_url` VARCHAR(500) DEFAULT NULL COMMENT '缩略图 URL',
|
||
`preview_url` VARCHAR(500) DEFAULT NULL COMMENT '预览图 URL',
|
||
`content` JSON NOT NULL COMMENT '组件完整配置数据 (JSON 格式)',
|
||
`usage_count` BIGINT NOT NULL DEFAULT 0 COMMENT '使用次数统计',
|
||
`like_count` BIGINT NOT NULL DEFAULT 0 COMMENT '点赞数量',
|
||
`is_premium` TINYINT NOT NULL DEFAULT 0 COMMENT '是否付费组件 (1:是 0:否)',
|
||
`is_system` TINYINT NOT NULL DEFAULT 0 COMMENT '是否系统预设 (1:是 0:否)',
|
||
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态 (1:启用 0:禁用)',
|
||
`remark` VARCHAR(1000) DEFAULT NULL COMMENT '备注说明',
|
||
`create_time` BIGINT NOT NULL COMMENT '创建时间 (Unix 时间戳秒级)',
|
||
`update_time` BIGINT DEFAULT NULL COMMENT '更新时间 (Unix 时间戳秒级)',
|
||
PRIMARY KEY ([id](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-admin\src\test\java\org\dromara\test\DemoUnitTest.java#L37-L37)),
|
||
INDEX `idx_type` (`type`),
|
||
INDEX `idx_status` (`status`),
|
||
INDEX `idx_usage_count` (`usage_count`),
|
||
INDEX `idx_create_time` (`create_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='H5 组件表';
|
||
|
||
-- 3. 标签表
|
||
CREATE TABLE `h5_tag` (
|
||
[id](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-admin\src\test\java\org\dromara\test\DemoUnitTest.java#L37-L37) BIGINT NOT NULL COMMENT '主键 ID',
|
||
`name` VARCHAR(100) NOT NULL COMMENT '标签名称',
|
||
`type` VARCHAR(50) DEFAULT NULL COMMENT '标签适用类型,NULL 表示通用',
|
||
`sort` INT NOT NULL DEFAULT 0 COMMENT '排序值',
|
||
`is_hot` TINYINT NOT NULL DEFAULT 0 COMMENT '是否热门 (1:是 0:否)',
|
||
`use_count` BIGINT NOT NULL DEFAULT 0 COMMENT '使用次数',
|
||
`create_time` BIGINT NOT NULL COMMENT '创建时间 (Unix 时间戳秒级)',
|
||
`update_time` BIGINT DEFAULT NULL COMMENT '更新时间 (Unix 时间戳秒级)',
|
||
PRIMARY KEY ([id](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-admin\src\test\java\org\dromara\test\DemoUnitTest.java#L37-L37)),
|
||
UNIQUE INDEX `uk_name` (`name`),
|
||
INDEX `idx_type` (`type`),
|
||
INDEX `idx_is_hot` (`is_hot`),
|
||
INDEX `idx_sort` (`sort`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='H5 组件标签表';
|
||
|
||
-- 4. 组件分类关联表 (多对多)
|
||
CREATE TABLE `h5_component_category_rel` (
|
||
[id](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-admin\src\test\java\org\dromara\test\DemoUnitTest.java#L37-L37) BIGINT NOT NULL COMMENT '主键 ID',
|
||
`component_id` BIGINT NOT NULL COMMENT '组件 ID',
|
||
`category_id` BIGINT NOT NULL COMMENT '分类 ID',
|
||
`create_time` BIGINT NOT NULL COMMENT '创建时间 (Unix 时间戳秒级)',
|
||
PRIMARY KEY ([id](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-admin\src\test\java\org\dromara\test\DemoUnitTest.java#L37-L37)),
|
||
UNIQUE INDEX `uk_component_category` (`component_id`, `category_id`),
|
||
INDEX `idx_category_id` (`category_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='H5 组件与分类关联表';
|
||
|
||
-- 5. 组件标签关联表 (多对多)
|
||
CREATE TABLE `h5_component_tag_rel` (
|
||
[id](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-admin\src\test\java\org\dromara\test\DemoUnitTest.java#L37-L37) BIGINT NOT NULL COMMENT '主键 ID',
|
||
`component_id` BIGINT NOT NULL COMMENT '组件 ID',
|
||
`tag_id` BIGINT NOT NULL COMMENT '标签 ID',
|
||
`create_time` BIGINT NOT NULL COMMENT '创建时间 (Unix 时间戳秒级)',
|
||
PRIMARY KEY ([id](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-admin\src\test\java\org\dromara\test\DemoUnitTest.java#L37-L37)),
|
||
UNIQUE INDEX `uk_component_tag` (`component_id`, `tag_id`),
|
||
INDEX `idx_tag_id` (`tag_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='H5 组件与标签关联表';
|
||
|
||
-- 初始化数据 - 一级分类 (固定 5 大类)
|
||
INSERT INTO `h5_component_category` ([id](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-admin\src\test\java\org\dromara\test\DemoUnitTest.java#L37-L37), `parent_id`, [name](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-common\ruoyi-common-translation\src\main\java\org\dromara\common\translation\core\TranslationInterface.java#L27-L27), `type`, `sort`, `icon`, `description`, `is_system`, `create_time`) VALUES
|
||
(1, 0, '文字', 'text', 1, NULL, '文字类组件,包括标题、正文、艺术字等', 1, UNIX_TIMESTAMP()),
|
||
(2, 0, '图片', 'image', 2, NULL, '图片类组件,包括产品图、背景图、装饰图等', 1, UNIX_TIMESTAMP()),
|
||
(3, 0, '扩展', 'extension', 3, NULL, '扩展功能组件,包括表单、定位、微信头像等', 1, UNIX_TIMESTAMP()),
|
||
(4, 0, '背景', 'background', 4, NULL, '背景类组件,包括渐变色、图案背景等', 1, UNIX_TIMESTAMP()),
|
||
(5, 0, '音乐', 'music', 5, NULL, '音乐音频类组件', 1, UNIX_TIMESTAMP());
|
||
|
||
-- 初始化数据 - 二级分类示例
|
||
INSERT INTO `h5_component_category` ([id](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-admin\src\test\java\org\dromara\test\DemoUnitTest.java#L37-L37), `parent_id`, [name](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-common\ruoyi-common-translation\src\main\java\org\dromara\common\translation\core\TranslationInterface.java#L27-L27), `type`, `sort`, `is_system`, `create_time`) VALUES
|
||
(101, 1, '标题文字', 'text', 1, 1, UNIX_TIMESTAMP()),
|
||
(102, 1, '正文文本', 'text', 2, 1, UNIX_TIMESTAMP()),
|
||
(103, 1, '艺术字', 'text', 3, 1, UNIX_TIMESTAMP()),
|
||
(201, 2, '产品图片', 'image', 1, 1, UNIX_TIMESTAMP()),
|
||
(202, 2, '装饰元素', 'image', 2, 1, UNIX_TIMESTAMP()),
|
||
(301, 3, '表单组件', 'extension', 1, 1, UNIX_TIMESTAMP()),
|
||
(302, 3, '地图定位', 'extension', 2, 1, UNIX_TIMESTAMP()),
|
||
(303, 3, '社交组件', 'extension', 3, 1, UNIX_TIMESTAMP());
|
||
|
||
-- 初始化数据 - 标签示例
|
||
INSERT INTO `h5_tag` ([id](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-admin\src\test\java\org\dromara\test\DemoUnitTest.java#L37-L37), [name](file://D:\project\gitee\RuoYi-Vue-Plus\ruoyi-common\ruoyi-common-translation\src\main\java\org\dromara\common\translation\core\TranslationInterface.java#L27-L27), `type`, `sort`, `is_hot`, `create_time`) VALUES
|
||
(1, '简约', NULL, 1, 1, UNIX_TIMESTAMP()),
|
||
(2, '商务', NULL, 2, 1, UNIX_TIMESTAMP()),
|
||
(3, '创意', NULL, 3, 1, UNIX_TIMESTAMP()),
|
||
(4, '节日', NULL, 4, 0, UNIX_TIMESTAMP()),
|
||
(5, '促销', NULL, 5, 1, UNIX_TIMESTAMP()),
|
||
(6, '中国风', NULL, 6, 0, UNIX_TIMESTAMP()),
|
||
(7, '科技感', NULL, 7, 1, UNIX_TIMESTAMP()),
|
||
(8, '清新', NULL, 8, 0, UNIX_TIMESTAMP());
|