掌中生活——设计Q&A
掌中生活——设计Q&A
| 这个作业属于哪个课程 | 202601福大-软件工程实践-W班 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践团队作业三——概要设计与数据库设计 |
| 团队名称 | 掌中生活(LifeMap) |
| 本次作业博客 | 掌中生活——项目系统设计与数据库设计 |
| 这个作业的目标 | 回应系统设计与数据库设计答辩提问与评审意见,补充提醒模型、形态调整与关键设计决策的说明 |
| 其他参考文献 | 《数据库设计说明书 V2.0》第 3、4、8 章;《系统设计说明书 V1.0》第 1、2、7 章 |
目录
- 掌中生活——设计Q&A
- 引言
- 评审得分回顾
- 问题一:为什么日期节点和提醒任务之间是一对多?
- 结语
引言
本文整理自 10 月 23 日系统设计与数据库设计课堂答辩的现场提问,逐条回复老师与助教提出的问题,作为本次作业的补充说明。凡回答中引用的图号、表号与约束编号,均与《系统设计说明书 V1.0》《数据库设计说明书 V2.0》保持一致,可直接对照查阅。
评审得分回顾
本次共收回 5 份评分(汪璟玢老师、助教 1-吴、助教 2-卢、助教 3-谭、助教 4-李),总分分别为 91、92、93、92、91,平均总分 91.8(满分 100)。
| 评审人 | PPT质量(20) | 功能模块层次设计(20) | 接口设计(20) | 系统安全性和健壮性(15) | ER图和表结构设计(15) | 演讲(10) | 总分 |
|---|---|---|---|---|---|---|---|
| 汪璟玢老师 | 19 | 19 | 17 | 13 | 14 | 9 | 91 |
| 助教1-吴 | 19 | 19 | 18 | 14 | 14 | 8 | 92 |
| 助教2-卢 | 17 | 20 | 18 | 14 | 15 | 9 | 93 |
| 助教3-谭 | 18 | 19 | 18 | 14 | 14 | 9 | 92 |
| 助教4-李 | 19 | 18 | 18 | 14 | 14 | 8 | 91 |
| 平均分 | 18.4 | 19.0 | 17.8 | 13.8 | 14.2 | 8.6 | 91.8 |
分维度看,功能模块层次设计(19.0/20)得分率最高;演讲(8.6/10)与接口设计(17.8/20)是得分率相对最低的两个维度。演讲方面将加强时间控制与重点取舍的演练;接口设计虽然文档完整(六个仓储 32 个方法契约),但答辩篇幅限制未充分展开,后续开发阶段会在 Alpha 冲刺的每日站会中结合代码实现持续补齐,并在下次答辩重点展示。
问题一:为什么日期节点和提醒任务之间是一对多?
答:一个日期节点对应多条提醒任务,是本系统提醒模型的核心设计,理由有三层:
第一层:支持多级提前提醒,同一截止日期需要多个推送时间点。
一个日期节点的"提醒"不是一次性的,而是分档的。例如一条证件记录的有效期是 2027 年 1 月 31 日,用户可以设置提前 30 天、提前 7 天、到期当天三次提醒——同一个截止日期,要在三个不同时间点推送通知,自然就派生出了三条提醒任务。在数据模型上,提醒任务不是用户直接录入的对象,而是由日期节点推导出来的结果(触发日 = 到期日 − 提前天数),节点一变、任务即重算。这正是"时间以节点驱动、提醒由数据推导"原则的体现:用户改了到期日,提醒自动跟上,不需要额外的同步逻辑。
第二层:重复周期会让一个节点跨多个到期周期持续派生任务。
日期节点支持"不重复 / 每月 / 每年"三种重复周期(BR-10)。按月重复的扣费日、按年重复的保费日,每个到期周期都会生成一条独立的提醒任务实例。概念设计阶段我们曾把"合并成一个表还是拆成两张表"交给 LLM 重点比较(见本次作业博客的 LLM 示例二):日期节点保存的是配置(周期、提前天数,设定一次很少改),提醒任务保存的是实例(每一次的执行状态与通知结果,随推送状态流转),两者生命周期完全不同,合并会让配置与运行状态互相牵制,因此最终拆为 date_node 与 reminder_task 两张表,形成 1:N(R-11)。
第三层:修改日期时旧任务不删除,而是"已失效 + 重建"。
如果用户修改了节点的日期,旧的提醒任务不会删掉,而是标记为"已失效"(INVALID),再按新日期重新生成任务——历史记录完整保留;系统扫描(scanDue)与待办查询时直接跳过失效任务,它们不参与排序、不参与推送。这样一来,"改日期"这个动作既不会留下两个互相矛盾的提醒,也不会抹掉曾经提醒过的痕迹,可追溯。
最后,1:N 的派生还配了防重复的库内兜底:生成语句用 INSERT OR IGNORE 配合唯一约束实现幂等——即使调度器因进程重启重复执行生成逻辑,也不会产生重复任务(该行为已由 DB-AC-11 验收用例实测验证)。
结语
感谢老师与助教在答辩现场的提问。日期节点与提醒任务的一对多关系,源于"多级提前提醒 + 重复周期 + 配置与实例分离"三重设计考量:同一个截止日期可以在多个时间点推送通知,同一个节点可以跨多个到期周期持续派生任务,而节点作为配置、任务作为实例的拆分让两者的状态流转互不牵制;修改日期时旧任务以"已失效"保留而非删除,既避免矛盾提醒又保留可追溯的历史。这一提醒模型已经通过数据库验收用例与设计约束检查清单的校验,后续 Alpha 冲刺将按设计逐一实现。
相关推荐
2018Q4-2020Q1罗莱生活企业营业利润.xls
2018Q4-2020Q1罗莱生活企业营业利润.xls
【附C++源码】从零实现模型预测控制(MPC):原理详解、代码实战与参数调优
本文详细介绍了从零实现模型预测控制(MPC)的原理、C++代码实战与参数调优方法。通过基础概念解析、线性系统建模、代价函数设计及优化求解,结合Eigen库实现高效矩阵运算,帮助开发者掌握MPC算法实现。文章还提供了参数调优指南、常见问题排查及性能优化技巧,适用于工业控制、机器人及自动驾驶等领域。
量子计算在手性分子识别中的突破与应用
量子计算通过模拟分子量子态演化,为化学领域的手性分子识别提供了革命性解决方案。手性分子具有相同的物理化学性质但不同的生物活性,传统方法难以区分。量子计算利用STIRAP和STAP等量子控制技术,通过精确操控分子能级实现高效识别。这些技术在药物研发和材料科学中具有重要应用价值,特别是在IBM量子处理器上的实验验证了其可行性。随着量子硬件性能提升,该技术有望在未来3-5年达到实用化水平。
贝叶斯估计的哲学思考:不确定性世界中的最优决策
本文探讨了贝叶斯估计在不确定性世界中的哲学意义和实际应用。通过分析最小均方估计的贝叶斯解释,揭示了其在医学诊断、金融风险管理等领域的决策优势,并讨论了人工智能时代贝叶斯方法的复兴。贝叶斯思维不仅是一种统计工具,更是一种认知框架,帮助我们在信息不完整的情况下做出最优决策。
三菱Q全系列PLC解密软件 Q00 Q01 Q02 Q03 Q04 Q06 Q12 Q13Q Q26 PLC直读密码解密软件.zip
高级安全。不破坏程序。无需拆机。直接连上线就可以解。直读密码 三菱PLC Q00 Q00J Q00U Q01 Q01U Q02 Q02H Q02U Q03UD Q03UDE Q03UDV Q04UDH Q04UDE Q04UDH Q06H系列 Q06UD系列 Q12G Q13UDE Q13UDHQ Q26 PLC 等Q全系列解密软件


