RuoYi-Vue-Plus/ruoyi-site/ruoyi-h5/doc/dml/h5_component.sql

113 lines
7.9 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 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());