我正在开展一个项目,我通常会使用此人的ID作为识别此人的主键。但是现在我正在开展一些比我更加正式和严肃的工作...(学校数据库)使用这个人/学生的身份证而不是另一个领域(ID)自动是一种好习惯生成/序列为PK。
答案 0 :(得分:3)
这是一个坏主意,原因很简单:安全。
您最好将数据库设计为具有所有实体的内部ID。然后,该人的id将是记录的属性,而不是主键。例如,这允许您加密id(和其他敏感信息)。如果某人掌握了某些数据的打印件,您就不必担心他们会看到个人信息。
在美国,这种设计得益于这样一个事实,即社会安全号码 - 我们最接近国家身份的号码 - 是专门设计的,不是国家身份证号码。除了欺诈问题外,大约10亿个数字将在一天内耗尽。
答案 1 :(得分:2)
我照看一个类似的学生数据库,我们使用学生ID作为PK。
它帮助我们,因为学生知道他们的身份证,如果他们有任何问题,他们可以来找我们并为我们引用他们的身份证来解决问题。它肯定比通过约翰史密斯的负载更容易跋涉。
我发现的缺点是我们确实将数据导出到excel这样的程序,并且很多ID都有前导零,如果你不小心将被删除。
这完全取决于你,但在我看来我会用它们。