# 11 需求到数据库设计跟踪矩阵 ## 11.1 说明 本矩阵用于建立“需求分析 -> 概念结构设计 -> 逻辑结构设计 -> 物理设计与测试”的对应关系,保证后续数据库设计不是脱离需求的孤立建表。 ## 11.2 跟踪矩阵 | 需求编号/需求组 | 主要业务含义 | 后续概念结构设计对象 | 后续逻辑结构设计关注点 | 后续物理设计/数据库对象关注点 | 后续测试重点 | |----------------|--------------|----------------------|------------------------|------------------------------|--------------| | FR-PC-01 ~ FR-PC-03 | 用户注册、状态管理、资料维护 | 用户、用户资料、用户状态 | 身份与资料一对一关系、状态域设计 | 主键、唯一约束、状态检查约束、审计写入 | 状态流转、重复学号、非法状态变更 | | FR-PC-04 ~ FR-PC-07 | 部门树、岗位、用户组织归属 | 部门、岗位、用户-部门、用户-岗位 | 树结构、多对多关系拆分 | 闭包表、复合主键、外键、删除策略 | 非法删除、环检测、范围查询 | | FR-PC-08 ~ FR-PC-10 | 角色、权限、数据范围 | 角色、权限、用户角色、角色权限、角色数据范围 | 多对多关系、角色-模块范围关系 | 唯一编码、复合外键、范围类型约束 | 重复授权、非法模块、范围合并 | | FR-PC-12 ~ FR-PC-13 | 审计日志记录与查询 | 审计日志 | 日志主体与快照数据分离 | append-only 约束、查询索引、触发器 | 非法修改日志、按条件检索 | | FR-FA-01 ~ FR-FA-04 | 楼房、房间与占用查询 | 楼房、房间、预约 | 楼房与房间一对多、预约时序关系 | 外键、容量检查、时间范围索引 | 房间归属、时间轴查询、非法容量 | | FR-FA-05 ~ FR-FA-06 | 预约申请与参与人维护 | 预约、参与人、用户 | 预约主体与参与人关系 | 外键、复合主键、去重约束、冲突控制 | 重复参与人、非法时间段、并发预约 | | FR-FA-07 ~ FR-FA-09 | 审核、驳回、取消、重提 | 预约状态机、审核与取消信息 | 状态域与辅助字段一致性 | 检查约束、事务边界、审计日志联动 | 非法状态流转、审核后取消、重提规则 | | FR-FA-11 ~ FR-FA-13 | 封禁和统计排行 | 封禁记录、预约事实统计 | 用户与封禁一对多、统计事实来源 | 生效条件判断、统计索引、聚合 SQL | 有效封禁判定、时间窗口排行 | | FR-CR-01 ~ FR-CR-03 | 专业、课程、专业负责人 | 专业、课程、专业负责人关系 | 专业与课程一对多、专业与负责人多对多 | 外键、复合主键、唯一约束 | 非法课程归属、重复负责人映射 | | FR-CR-04 ~ FR-CR-09 | 资源草稿、送审、审核、发布、下架 | 课程资源、审核状态 | 资源主体建模、状态机、文件/外链互斥 | 检查约束、唯一约束、触发器或规则函数 | 非法状态流转、文件外链冲突、重复资源 | | FR-CR-12 ~ FR-CR-14 | 下载、推荐、积分与排行 | 下载事件、推荐记录、积分事件 | 主体数据与事件事实表分层 | 事件表索引、幂等唯一键、统计 SQL | 重复计分、重复推荐、排行准确性 | | NFR-08 ~ NFR-13 | 一致性、可靠性、审计 | 关键事务场景与日志场景 | 多表联动、异常回滚、历史保留 | 事务、约束、触发器、审计表设计 | 事务回滚、约束失败样例、日志完整性 | ## 11.3 使用建议 在后续数据库课程设计推进过程中,建议按以下顺序使用本矩阵: 1. 依据左侧需求编号确定下一步要设计的模块 2. 根据“概念结构设计对象”绘制局部 E-R 图 3. 根据“逻辑结构设计关注点”整理关系模式与主外键 4. 根据“物理设计关注点”设计索引、检查约束、触发器和典型 SQL 5. 根据“测试重点”准备结构约束测试与业务流程测试 ## 11.4 结论 通过建立需求到数据库设计的跟踪矩阵,可以保证后续设计过程满足以下要求: - 需求有来源 - 设计有依据 - 约束有目标 - 测试有落点 这不仅有利于后续实现,也更符合数据库课程设计对“完整设计过程”的要求。