“人”有哪些好的候选键?

时间:2018-11-07 16:39:24

标签: database-design relational-database primary-key natural-key

在全球范围内使用的应用程序中, 可以使用哪些自然键来唯一标识用户/人员?

我们如何处理极端情况? -没有国家或官方文件(难民)的人 -更改了姓名或性别/性别的人

密钥应健壮且唯一。

4 个答案:

答案 0 :(得分:3)

没有上下文,这是不可能回答的。与任何信息系统一样,您需要了解生成和使用数据的需求以及操作过程。如果人们将与您的系统交互或由您的系统服务,那么哪些属性需要构成这些交互和服务的一部分?如果相关人员必须在线注册或必须同意合同,或者存在其他一些信息收集过程,则这些交互很可能会定义密钥,例如登录名,合同标识符或数字签名。

请注意,在很多情况下,也许在几乎所有情况下,都是与系统中识别出的人进行的互动合同,不一定是个人自己。

答案 1 :(得分:2)

正如其他人所评论的那样,要使某件商品具有100%的独特性将非常困难-可能需要在边缘情况下走多远与实际之间取得平衡。

务实的是,您可以假设以下字段组合很可能在绝大多数时间内唯一地识别一个人:

  • 出生日期
  • 出生证明上的全名(姓,中间名和姓)

但是通常的名字会下降-如果您的名字是James Smith并且您是在婴儿潮时期出生的,it's not all that unlikely还有其他人知道您的名字和出生日期。

要进一步缩小范围,您可以增加出生的时间和地点-但是这些可能很难实现。即使到那时,也没有100%的铸铁保证-在历史上的某个时刻,并非完全不可能在同一天以相同的记录的出生时间和相同的名字在同一家医院出生两个婴儿... < / p>

答案 2 :(得分:2)

Imo是可用于识别人的唯一性且同时并非随机生成的最独特的值之一,可以是通过对帐户常数进行一些数学计算而生成的代码。其中一些可能是日期出生地或出生证明上的姓名。这将生成一个ID,该ID应该几乎是唯一的(以相同的名字,相同的日期和相同的位置出生的人又有多大?)并且也是自然的,因为它不是随机生成的。 一个很好的例子是意大利目前用来唯一标识卫生系统中的个人的信息,以及意大利财政法规(不要与ID混淆)

我认为这可以回答您的问题,否则我认为需要更多上下文。

更多信息,请访问https://en.wikipedia.org/wiki/Italian_fiscal_code_card

答案 3 :(得分:1)

简单。它们不存在。高度敏感的安全系统采用指纹或虹膜扫描,但不包括法人,无论如何,此类扫描自然不会立即可用。目前什至没有真正的政府的国家,会以不那么先进的手段来“识别”其公民,而根据定义,这些手段也就不会那么“健壮”(/可靠)。