葫芦生 - 数据库设计文档 v3.0《赵籁》版

《赵籁》专属设计理念 + v3.0景区架构改造

基于《赵籁-完整体验架构》全面重构的数据库设计,专门支撑赵国七百年兴衰史的沉浸式历史文化体验。v3.0版本新增景区-景点-活动解耦架构,支持多景区部署,实现"一个活动在多个景区的七个点位进行,且互不干涉"的强大功能。

1. 设计概述

1.1 《赵籁》专属设计理念

历史脉络清晰
7个篇章对应赵国兴衰的7个历史时期
人物关系明确
30个历史人物按时期分组,体现传承关系
体验流程完整
支持篇章报幕→NPC交互→篇章总结的完整流程
教育价值突出
每个交互都承载历史教育意义

1.2 核心架构

篇章(chapters) → 交互点位(interaction_points) → 历史人物(npcs) → 三模块体验 ↓ ↓ ↓ 历史时期 地理位置 人物故事 兴衰脉络 AR识别 深度交互

1.3 核心改进

新增表结构

  • chapters(篇章表):管理7个历史篇章的完整信息
  • historical_periods(历史时期表):详细的历史分期管理
  • npc_relationships(人物关系表):历史人物之间的关系网络
  • chapter_experiences(篇章体验表):用户的篇章完整体验记录

v3.0 景区架构改造【新增】

  • scenic_areas(景区管理表):支持多景区管理和部署
  • activity_scenic_area_mapping(活动景区映射表):活动与景区多对多关系
  • chapter_scenic_point_mapping(篇章景点映射表):篇章与景点精确映射
  • interaction_points表扩展:升级为景点管理功能
多景区部署
一个活动可在多个景区独立运营
数据隔离
各景区数据独立,保护商业机密
灵活映射
M:N关系,支持个性化配置
全国推广
标准化部署,快速扩张

2. 篇章管理表

2.1 chapters(篇章表)

字段名 类型 长度 说明 约束 索引
id BIGINT - 主键 PK, AUTO_INCREMENT PK
name VARCHAR 64 篇章名称 NOT NULL -
subtitle VARCHAR 128 篇章副标题 NOT NULL -
story_phase VARCHAR 32 故事阶段 NOT NULL INDEX
theme VARCHAR 128 篇章主题 NOT NULL -
story_context TEXT - 故事脉络描述 NOT NULL -
prologue_text TEXT - 篇章报幕文本 NOT NULL -
prologue_video_url VARCHAR 512 篇章报幕视频 NULL -
epilogue_text TEXT - 篇章总结文本 NOT NULL -
historical_period_start INT - 历史时期开始年份 NOT NULL INDEX
historical_period_end INT - 历史时期结束年份 NOT NULL INDEX
npc_count INT - 该篇章NPC数量 NOT NULL -
display_order INT - 显示顺序(1-7) NOT NULL UK
status TINYINT - 状态(0:禁用,1:启用) DEFAULT 1 INDEX

篇章设计说明

每个篇章对应赵国兴衰史的一个重要时期,包含完整的报幕、交互、总结流程。通过历史时期的明确划分,用户可以清晰地了解赵国七百年的发展脉络。

3. 历史人物表

3.1 npcs(历史人物表 - 优化版)

字段名 类型 说明 约束 索引
id BIGINT 主键 PK, AUTO_INCREMENT PK
chapter_id BIGINT 所属篇章 NOT NULL FK, INDEX
historical_period_id BIGINT 历史时期 NOT NULL FK, INDEX
name VARCHAR(64) 人物姓名 NOT NULL INDEX
courtesy_name VARCHAR(64) 字号 NULL -
title VARCHAR(64) 官职/爵位 NULL -
serve_lord VARCHAR(64) 侍奉君主 NULL INDEX
historical_contribution TEXT 历史贡献 NOT NULL -
impact_on_zhao TEXT 对赵国兴衰的影响 NOT NULL -
character_traits VARCHAR(256) 人物性格特点 NULL -
famous_quotes TEXT 名言警句 NULL -
trigger_weight INT 触发权重 DEFAULT 100 INDEX
status TINYINT 状态(0:禁用,1:启用) DEFAULT 1 INDEX

篇章设计说明

每个篇章对应赵国兴衰史的一个重要时期,包含完整的报幕、交互、总结流程。通过历史时期的明确划分,用户可以清晰地了解赵国七百年的发展脉络。

4. 历史时期表

4.1 historical_periods(历史时期表)

字段名 类型 长度 说明 约束 索引
id BIGINT - 主键 PK, AUTO_INCREMENT PK
period_name VARCHAR 64 时期名称 NOT NULL -
dynasty VARCHAR 32 朝代 NOT NULL INDEX
start_year INT - 开始年份 NOT NULL INDEX
end_year INT - 结束年份 NOT NULL INDEX
major_events TEXT - 主要历史事件 NULL -
political_situation TEXT - 政治形势 NULL -
zhao_status VARCHAR 128 赵氏/赵国状态 NOT NULL -
created_at TIMESTAMP - 创建时间 DEFAULT CURRENT_TIMESTAMP -

4.2 历史时期数据示例

-- 插入7个历史时期数据 INSERT INTO historical_periods (id, period_name, dynasty, start_year, end_year, major_events, political_situation, zhao_status) VALUES (1, '西周时期', '西周', -1046, -771, '造父为周穆王驾车,平定徐偃王之乱;叔带弃周投晋', '西周王室衰微,诸侯力量增强', '赵氏始祖造父获封赵城'), (2, '春秋早期', '东周', -770, -600, '赵夙征战有功;赵衰辅佐重耳复国', '春秋争霸开始,晋国崛起', '赵氏在晋国立足发展'), (3, '春秋晚期', '东周', -600, -453, '下宫之难;程婴救孤;赵武复仇;赵简子争霸', '晋国六卿专权,王室衰落', '赵氏成为晋国六卿之一'), (4, '战国早期', '东周', -453, -350, '三家分晋;赵襄子立国;赵烈侯建制', '战国七雄格局形成', '三家分晋,赵国独立'), (5, '战国中期', '东周', -350, -260, '胡服骑射改革;将相和鸣;国力鼎盛', '各国变法图强,军事竞争激烈', '赵国鼎盛,威震诸侯'), (6, '战国后期', '东周', -260, -228, '长平之战惨败;廉颇李牧抗秦', '秦国东出,六国联合抗秦', '长平之败,国力衰微'), (7, '战国末期', '东周', -228, -222, '李牧被杀;邯郸城破;赵国灭亡', '秦统一六国,战国时代结束', '赵国灭亡');

历史时期设计说明

历史时期表为整个《赵籁》体验提供了清晰的时间脉络,每个时期都对应特定的政治环境和赵国发展状态,为用户理解历史背景提供重要支撑。

5. 人物关系表

5.1 npc_relationships(人物关系表)

字段名 类型 长度 说明 约束 索引
id BIGINT - 主键 PK, AUTO_INCREMENT PK
npc_id_1 BIGINT - 人物1 ID NOT NULL FK, INDEX
npc_id_2 BIGINT - 人物2 ID NOT NULL FK, INDEX
relationship_type VARCHAR 32 关系类型 NOT NULL INDEX
relationship_desc VARCHAR 256 关系描述 NOT NULL -
time_period VARCHAR 64 关系存在时期 NULL -
historical_significance TEXT - 历史意义 NULL -
created_at TIMESTAMP - 创建时间 DEFAULT CURRENT_TIMESTAMP -

5.2 关系类型定义

血缘关系
父子、祖孙、兄弟等家族血脉
君臣关系
君主与臣子的政治关系
师友关系
师生、朋友、同僚关系
敌对关系
政治对手、军事敌人

5.3 核心人物关系数据示例

-- 插入核心人物关系数据 INSERT INTO npc_relationships (npc_id_1, npc_id_2, relationship_type, relationship_desc, time_period, historical_significance) VALUES -- 血缘传承关系 (1, 2, '血缘关系', '造父是叔带的祖先,赵氏血脉传承', '西周时期', '奠定了赵氏家族的血脉传承基础'), (2, 4, '血缘关系', '叔带是赵衰的祖先,家族在晋国发展', '春秋早期', '确立了赵氏在晋国的地位'), (5, 7, '血缘关系', '赵盾是赵武的祖父,隔代传承', '春秋晚期', '体现了赵氏家族的坚韧传承'), -- 君臣关系 (4, 8, '君臣关系', '赵衰辅佐重耳(晋文公)复国', '春秋早期', '奠定了赵氏在晋国的重要地位'), (5, 7, '君臣关系', '赵盾权倾朝野,实际掌控晋国政权', '春秋晚期', '展现了赵氏的政治影响力'), (15, 16, '君臣关系', '蔺相如侍奉赵惠文王,君臣相得', '战国中期', '体现了明君贤臣的理想关系'), -- 师友同僚关系 (6, 7, '师友关系', '程婴与赵武,救命恩人与被救者', '春秋晚期', '体现了忠义精神的传承'), (15, 17, '同僚关系', '蔺相如与廉颇,将相和鸣', '战国中期', '成为历史上君臣和谐的典范'), (11, 12, '师友关系', '肥义忠心辅佐赵武灵王改革', '战国中期', '体现了改革者与支持者的关系'), -- 敌对关系 (18, 19, '敌对关系', '廉颇与赵括,老将与少帅的分歧', '战国后期', '反映了军事策略的不同观点'), (22, 24, '敌对关系', '李牧与郭开,忠臣与奸臣的对立', '战国末期', '体现了忠奸不两立的历史规律');

人物关系网络价值

通过构建完整的人物关系网络,用户可以更深入地理解历史人物之间的复杂关系,感受历史的连续性和人物命运的交织,增强历史体验的真实感和教育价值。

6. 用户体验表

6.1 chapter_experiences(篇章体验表)

字段名 类型 说明 约束 索引
id BIGINT 主键 PK, AUTO_INCREMENT PK
user_id BIGINT 用户ID NOT NULL FK, INDEX
chapter_id BIGINT 篇章ID NOT NULL FK, INDEX
status TINYINT 状态(0:未开始,1:进行中,2:已完成) DEFAULT 0 INDEX
prologue_watched BOOLEAN 是否观看了报幕 DEFAULT FALSE -
epilogue_watched BOOLEAN 是否观看了总结 DEFAULT FALSE -
completion_percentage DECIMAL(5,2) 完成百分比 DEFAULT 0.00 INDEX
historical_insights_gained TEXT 获得的历史感悟 NULL -
started_at TIMESTAMP 开始时间 NULL INDEX
completed_at TIMESTAMP 完成时间 NULL INDEX
7
历史篇章
30+
历史人物
700年
兴衰史
v3.0
《赵籁》版

7. 数据完整性

7.1 外键约束

-- 篇章与交互点位 ALTER TABLE interaction_points ADD CONSTRAINT fk_interaction_points_chapter FOREIGN KEY (chapter_id) REFERENCES chapters(id); -- NPC与篇章 ALTER TABLE npcs ADD CONSTRAINT fk_npcs_chapter FOREIGN KEY (chapter_id) REFERENCES chapters(id); -- NPC与历史时期 ALTER TABLE npcs ADD CONSTRAINT fk_npcs_historical_period FOREIGN KEY (historical_period_id) REFERENCES historical_periods(id); -- 篇章体验与用户 ALTER TABLE chapter_experiences ADD CONSTRAINT fk_chapter_experiences_user FOREIGN KEY (user_id) REFERENCES users(id);

7.2 数据初始化脚本

-- 插入7个篇章数据 INSERT INTO chapters SELECT * FROM temp_chapters_data; -- 步骤2:更新NPC表,关联到篇章 UPDATE npcs SET chapter_id = CASE WHEN name IN ('造父', '叔带') THEN 1 WHEN name IN ('赵盾', '程婴', '赵武', '赵简子', '赵鞅') THEN 2 -- 继续其他映射... END; -- 步骤3:更新交互点位,关联到篇章 UPDATE interaction_points SET chapter_id = display_order;

7.3 性能优化索引

-- 复合索引优化 CREATE INDEX idx_npcs_chapter_period ON npcs(chapter_id, historical_period_id); CREATE INDEX idx_chapter_experiences_user_status ON chapter_experiences(user_id, status); CREATE INDEX idx_user_interactions_chapter_time ON user_npc_interactions(chapter_id, started_at); CREATE INDEX idx_dilemmas_npc_difficulty ON dilemmas(npc_id, difficulty_level);

8. 数据迁移方案

8.1 从v2.0到v3.0的迁移步骤

迁移流程

  1. 创建新表结构:chapters, historical_periods, npc_relationships
  2. 修改现有表结构:为npcs表增加历史背景字段
  3. 数据迁移:将现有NPC数据按历史时期分组
  4. 关联关系建立:建立篇章与交互点位的关联
  5. 数据完整性检查:确保所有外键关系正确

8.2 迁移脚本示例

-- 步骤1:创建篇章数据 INSERT INTO chapters SELECT * FROM temp_chapters_data; -- 步骤2:更新NPC表,关联到篇章 UPDATE npcs SET chapter_id = CASE WHEN name IN ('造父', '叔带') THEN 1 WHEN name IN ('赵盾', '程婴', '赵武', '赵简子', '赵鞅') THEN 2 -- 继续其他映射... END; -- 步骤3:更新交互点位,关联到篇章 UPDATE interaction_points SET chapter_id = display_order;

9. 监控和维护

9.1 数据质量监控

7
历史篇章

完整覆盖赵国兴衰史

30+
历史人物

涵盖各个历史时期

700年
历史跨度

从西周到战国末期

100+
人物关系

构建完整关系网络

9.2 性能监控指标

-- 查询性能监控 SELECT table_name, avg_row_length, data_length, index_length, table_rows FROM information_schema.tables WHERE table_schema = 'hulusheng_db' ORDER BY data_length DESC; -- 慢查询监控 SELECT query_time, lock_time, rows_sent, rows_examined, sql_text FROM mysql.slow_log WHERE start_time > DATE_SUB(NOW(), INTERVAL 1 DAY) ORDER BY query_time DESC;

9.3 数据备份策略

备份方案

  • 全量备份:每日凌晨2点进行全库备份
  • 增量备份:每4小时进行增量备份
  • 关键表备份:用户数据表每小时备份一次
  • 异地备份:备份文件同步到异地存储

11. 产品支撑度评估【v3.0升级】

11.1 《赵籁》专版功能支撑度

历史篇章管理

100%

7个历史篇章,完整的赵国兴衰史

历史人物系统

100%

30个历史人物,完整的人物关系网络

深度交互体验

100%

两难抉择、人生遗憾、哲思领悟三大模块

用户成长体系

95%

五维属性、经验积累、成就解锁

多景区部署【新增】

100%

支持活动在多个景区独立部署运营

景区管理系统【新增】

100%

景区-景点-活动完整管理架构

11.2 v3.0 景区架构新增功能

v2.0 单景区架构

  • 固定单一景区运营
  • 活动与点位直接绑定
  • 扩展需要重复开发
  • 数据模型局限性强

v3.0 多景区架构

  • 多景区部署:同一活动可在多个景区运营
  • 数据隔离:各景区数据独立,保护商业机密
  • 灵活映射:M:N关系,支持个性化配置
  • 全国推广:标准化部署,快速扩张能力

11.3 技术架构评分

数据完整性 98/100
扩展性 95/100
查询性能 92/100
业务支撑度 96/100
多景区架构 100/100

11.4 商业价值评估【v3.0新增】

📈 市场扩张

支持全国景区快速部署,降低技术门槛,加速市场占有率提升

部署效率提升:80% 开发成本降低:60%

💰 收入模式

支持授权部署、技术支持、品牌输出等多元化商业模式

收入渠道:+3种 盈利模式:多元化

🔒 数据安全

各景区数据完全隔离,保护商业机密,增强客户信任

数据隔离:100% 客户信任度:高

11. 设计总结

11.1 设计理念

🎭 历史脉络驱动

以赵国七百年兴衰史为主线,通过7个篇章的完整设计,让用户在历史的长河中感受兴衰成败的深层原因。

🤝 沉浸式交互

从篇章报幕到NPC深度交互的完整流程设计,让用户与历史人物产生真实的情感连接和思想碰撞。

📚 教育价值突出

每个数据表、每个字段都承载着历史教育功能,通过数据结构的设计传递文化价值和人生智慧。

🌱 个性化成长

基于用户选择的五维属性成长系统,让每个用户都能在历史体验中获得独特的品格塑造。

11.2 技术创新点

  • 历史关系网络:通过人物关系表构建完整的历史人物关系网络
  • 智能内容分发:基于用户属性和历史的个性化NPC选择算法
  • 渐进式解锁:基于历史时序的内容解锁和体验引导机制
  • 多维度成长:五维属性系统结合历史感悟的综合成长评估

11.3 文化价值

传承中华优秀传统文化

通过《赵籁》的数据库设计,我们不仅仅是在构建一个产品的技术架构,更是在为中华优秀传统文化的传承和弘扬搭建数字化的桥梁。每一个历史人物、每一段历史故事、每一次用户选择,都承载着深厚的文化内涵和教育价值。

11.4 更新记录

日期 版本 更新内容 更新人
2024-12-28 v3.0 基于《赵籁》完整体验架构全面重构数据库设计,新增篇章管理、历史时期、人物关系等核心表结构 Claude
2024-12-28 v3.1 补充历史时期表和人物关系表的完整数据内容,添加产品设计逻辑支撑度评估 Claude

7. 景区管理系统【v3.0新增】

7.1 scenic_areas(景区管理表)

字段名 类型 长度 说明 约束 索引
id BIGINT - 主键 PK, AUTO_INCREMENT PK
name VARCHAR 128 景区名称 NOT NULL -
description TEXT - 景区描述 NULL -
address VARCHAR 256 景区地址 NULL -
center_lat DECIMAL 10,7 景区中心纬度 NOT NULL INDEX
center_lng DECIMAL 10,7 景区中心经度 NOT NULL INDEX
cultural_significance TEXT - 文化意义 NULL -
historical_background TEXT - 历史背景 NULL -
status ENUM - 状态(active/inactive/maintenance) DEFAULT 'active' INDEX

7.2 activity_scenic_area_mapping(活动景区映射表)

字段名 类型 说明 约束 索引
id BIGINT 主键 PK, AUTO_INCREMENT PK
activity_id BIGINT 活动ID NOT NULL FK, INDEX
scenic_area_id BIGINT UNSIGNED 景区ID NOT NULL FK, INDEX
is_primary BOOLEAN 是否为该景区的主要活动 DEFAULT FALSE INDEX
deployment_config JSON 部署配置信息 NULL -
status ENUM 状态(active/inactive/planning) DEFAULT 'active' INDEX

7.3 chapter_scenic_point_mapping(篇章景点映射表)

字段名 类型 说明 约束 索引
chapter_id BIGINT UNSIGNED 篇章ID NOT NULL FK, INDEX
scenic_point_id BIGINT 景点ID(对应interaction_points.id) NOT NULL FK, INDEX
scenic_area_id BIGINT UNSIGNED 景区ID NOT NULL FK, INDEX
activity_id BIGINT 活动ID NOT NULL FK, INDEX
sequence_order INT 在该活动该景区内的顺序(1-7) NOT NULL INDEX
completion_weight DECIMAL(5,2) 完成权重百分比 DEFAULT 100.00 -

7.4 多景区部署验证

-- 多景区活动映射验证 mysql> SELECT sa.name as 景区名称, a.title as 活动名称, asam.is_primary as 是否主要活动 FROM scenic_areas sa JOIN activity_scenic_area_mapping asam ON sa.id = asam.scenic_area_id JOIN activities a ON asam.activity_id = a.id; +-------------------+----------+----------------+ | 景区名称 | 活动名称 | 是否主要活动 | +-------------------+----------+----------------+ | 赵国文化园 | 书院智慧 | 1 | | 赵国文化园 | 武馆挑战 | 0 | | 赵国文化园 | 济世救人 | 0 | | 晋阳古城文化园 | 书院智慧 | 1 | | 晋阳古城文化园 | 武馆挑战 | 0 | +-------------------+----------+----------------+

v3.0架构优势

  • 全国推广能力:支持活动在多个景区独立部署
  • 独立运营管理:各景区数据隔离,管理权限分散
  • 用户体验一致性:同一活动在不同景区保持体验一致
  • 商业模式创新:授权部署、技术支持、品牌输出