Files
admin/db/02_sections.sql
T
2026-07-30 17:33:08 +08:00

109 lines
6.2 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.
-- ============================================================
-- 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 '关联产品 IDpage_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',
`bg_type` VARCHAR(10) NOT NULL DEFAULT 'color' COMMENT '背景类型: color / image / video',
`bg_value` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '背景值(颜色值 或 素材路径)',
`overlay_enabled` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否启用遮罩层',
`overlay_opacity` DECIMAL(3,2) NOT NULL DEFAULT 0.00 COMMENT '遮罩透明度 0~1',
`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='产品参数规格项';