你会后悔使用自然键

主要观点:作者通过自己汽车底盘号错误的经历,引发对数据库中自然键的思考。认为自然键存在诸多问题,如可能并非真正唯一、可能因时间等因素导致同一实体有多个键、易出现录入错误等,应始终使用合成键。
关键信息:

  • 丹麦汽车每两年强制年检,作者汽车底盘号被指错误, mechanic 轻松修改后未出现问题。
  • 作者参与数据库课程,学生提出用自然键设计数据库,如餐厅数据库以餐厅名、城市名和年份组合为键,但存在问题。
  • 自然键保证唯一性只是问题之一,如个人身份证号可能因变性等原因导致同一人有多个,且不能保证是双射。
  • 即使自然键唯一且能追踪实体,仍存在数据录入错误,系统应允许纠正数据,不能用外部定义的键作为数据库键。
  • 作者早年常使用自然键,如今遵循总是使用合成键的启发式原则。
    重要细节:
  • 介绍了自然键(如餐厅名、城市名等组合)、合成键、自然的自然键(如汽车底盘号、个人身份证号等)等概念。
  • 以丹麦 CPR 号为例,说明因法律等原因同一人可能有多个相同类型的键。
  • 提及数据录入错误的各种情况,如 end-user 误输、系统升级迁移中的数据转换错误等。
阅读 8
0 条评论