110 lines
6.4 KiB
SQL
110 lines
6.4 KiB
SQL
-- ============================================================
|
||
-- 02_sections.sql
|
||
-- 页面区块系统:Section 区块、特性列表、步骤列表、数据指标、参数规格
|
||
-- 对应 proposal.md 第 3.1、4.3 节
|
||
-- ============================================================
|
||
|
||
-- -----------------------------------------------------------
|
||
-- Section 区块(通用,支持多种页面类型)
|
||
-- page_type: homepage / product / about / support
|
||
-- 首页和产品详情页可自由增删区块;关于我们/技术支持为固定布局
|
||
-- -----------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `www_section_blocks` (
|
||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
`page_type` VARCHAR(20) NOT NULL COMMENT '所属页面: homepage / product / about / support',
|
||
`product_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '关联产品 ID(page_type=product 时)',
|
||
`layout` VARCHAR(30) NOT NULL COMMENT '布局类型: hero_split / hero_center / image_text / two_column / feature_grid / spec_showcase / video_showcase / scroll_narrative / cta_banner / spec_table',
|
||
`theme` VARCHAR(10) NOT NULL DEFAULT 'light' COMMENT '主题: light / dark',
|
||
`overline_color` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Overline 自定义颜色(空=跟随主题默认色)',
|
||
`title_color` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '标题自定义颜色(空=跟随主题默认色)',
|
||
`body_color` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '副标题/正文自定义颜色(空=跟随主题默认色)',
|
||
`bg_type` VARCHAR(10) NOT NULL DEFAULT 'color' COMMENT '背景类型: color / image / video',
|
||
`bg_value` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '背景值(颜色值 或 素材路径)',
|
||
`overline_zh` VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'Overline 文本(中文)',
|
||
`overline_en` VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'Overline 文本(英文)',
|
||
`title_zh` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '标题(中文)',
|
||
`title_en` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '标题(英文)',
|
||
`subtitle_zh` VARCHAR(300) NOT NULL DEFAULT '' COMMENT '副标题(中文)',
|
||
`subtitle_en` VARCHAR(300) NOT NULL DEFAULT '' COMMENT '副标题(英文)',
|
||
`content_zh` TEXT COMMENT '正文内容(中文,富文本)',
|
||
`content_en` TEXT COMMENT '正文内容(英文,富文本)',
|
||
`cta_primary_zh` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '主 CTA 文案(中文)',
|
||
`cta_primary_en` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '主 CTA 文案(英文)',
|
||
`cta_primary_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '主 CTA 链接',
|
||
`cta_secondary_zh` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '次 CTA 文案(中文)',
|
||
`cta_secondary_en` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '次 CTA 文案(英文)',
|
||
`cta_secondary_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '次 CTA 链接',
|
||
`media_url_zh` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '图片/媒体路径(中文)',
|
||
`media_url_en` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '图片/媒体路径(英文)',
|
||
`video_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '视频地址(Video Showcase 专用)',
|
||
`config` JSON COMMENT '布局扩展配置(JSON),Feature Grid / Steps / Data Metrics 等',
|
||
`is_visible` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否显示',
|
||
`sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序(同页面内)',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_page_type` (`page_type`, `sort_order`),
|
||
KEY `idx_product_id` (`product_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||
COMMENT='页面 Section 区块';
|
||
|
||
-- -----------------------------------------------------------
|
||
-- config 字段 JSON 结构说明(不在数据库中约束,应用层校验)
|
||
--
|
||
-- Feature Grid (layout=feature_grid):
|
||
-- {
|
||
-- "features": [
|
||
-- { "icon": "...", "title_zh": "...", "title_en": "...",
|
||
-- "desc_zh": "...", "desc_en": "..." }
|
||
-- ]
|
||
-- }
|
||
--
|
||
-- Data Metrics (layout=spec_showcase):
|
||
-- {
|
||
-- "metrics": [
|
||
-- { "value": "≥129.5", "unit": "dB", "label_zh": "信噪比", "label_en": "SNR" }
|
||
-- ]
|
||
-- }
|
||
--
|
||
-- Steps (layout=scroll_narrative):
|
||
-- {
|
||
-- "steps": [
|
||
-- { "title_zh": "...", "title_en": "...",
|
||
-- "desc_zh": "...", "desc_en": "...",
|
||
-- "media_url": "..." }
|
||
-- ]
|
||
-- }
|
||
-- -----------------------------------------------------------
|
||
|
||
-- -----------------------------------------------------------
|
||
-- 4.3 产品参数规格(Spec Table 布局子表)
|
||
-- 参数分组,挂载在 section_blocks 上
|
||
-- -----------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `www_spec_groups` (
|
||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
`section_block_id` BIGINT UNSIGNED NOT NULL COMMENT '所属 Section 区块 ID',
|
||
`title_zh` VARCHAR(100) NOT NULL COMMENT '分组标题(中文)',
|
||
`title_en` VARCHAR(100) NOT NULL COMMENT '分组标题(英文)',
|
||
`sort_order` INT NOT NULL DEFAULT 0 COMMENT '分组排序',
|
||
`default_visible` INT NOT NULL DEFAULT 5 COMMENT '收起状态下默认显示项数',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_section_block` (`section_block_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||
COMMENT='产品参数规格分组';
|
||
|
||
-- -----------------------------------------------------------
|
||
-- 参数项,挂载在 spec_groups 上
|
||
-- -----------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `www_spec_items` (
|
||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
`spec_group_id` BIGINT UNSIGNED NOT NULL COMMENT '所属参数分组 ID',
|
||
`name_zh` VARCHAR(100) NOT NULL COMMENT '参数名称(中文)',
|
||
`name_en` VARCHAR(100) NOT NULL COMMENT '参数名称(英文)',
|
||
`value_zh` VARCHAR(500) NOT NULL COMMENT '参数值(中文)',
|
||
`value_en` VARCHAR(500) NOT NULL COMMENT '参数值(英文)',
|
||
`sort_order` INT NOT NULL DEFAULT 0 COMMENT '参数排序',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_spec_group` (`spec_group_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||
COMMENT='产品参数规格项';
|