# 除了 3NF、外键、完整性约束之外,老师还可能在意什么 如果只盯着“3NF、显式物理外键、完整性约束”,很容易漏掉数据库课程设计中另外几类常见得分点。 ## 1. 数据库设计过程是否完整 老师通常不只看最后的 SQL,还会看你有没有把下面这些过程走完整: - 需求分析 - E-R 图 - 关系模式 - 物理设计 - 测试与结果分析 如果只有代码和建表语句,没有这条主线,容易被认为“像工程实现,不像数据库课程设计”。 ## 2. 数据字典是否完整 很多学生会画图,但不给字段说明。老师通常会在意: - 字段名是否规范 - 数据类型是否合理 - 是否可空是否有依据 - 默认值是否有业务意义 - 编码字段与名称字段是否区分清楚 ## 3. 删除与级联策略是否讲得明白 数据库设计里,`ON DELETE` 不是技术细节,而是业务规则。 你需要能说明: - 为什么某些表删除父记录时要 `CASCADE` - 为什么某些表必须 `RESTRICT` - 为什么某些审计或审核字段适合 `SET NULL` ## 4. 并发与事务是否考虑过 数据库课程设计不只看静态结构,也常常看动态一致性。 典型问题: - 两个人同时预约同一房间怎么办 - 同一资源的积分事件会不会重复发 - 同一用户多次重复提交会不会破坏数据一致性 ## 5. 是否有代表性的数据库对象 除了表,老师常常也希望看到: - 索引 - 视图 - 触发器 - 数据库函数 - 审计机制 哪怕不是每种都用,只要你用了其中几类并讲清楚,就会比纯表设计更像优秀课设。 ## 6. 是否能证明“数据库自己在起作用” 很重要的一点是: - 不是“后端写了判断,所以没出错” - 而是“即使绕过前端/后端,数据库也会拒绝非法数据” 如果答辩时能展示 2 到 3 个失败样例,会很有说服力。 ## 7. 哪些东西应该弱化 本次课设中,下列内容不建议当主卖点: - UI 做得多漂亮 - 用了多少 React / Next.js 特性 - 用了 Supabase 多方便 - 工程上为什么偏好逻辑外键 这些不是错,但不属于数据库课程的核心评价点。