“人”的一些好的候选键是什么?

What are some good candidate keys for ‘person’?

在将在全球范围内使用的应用程序中, 有哪些适合用于唯一标识 users/persons 的自然键的候选者?

我们如何处理边缘情况? - 没有国家或官方文件的人(难民) - 改名或 gender/sex

的人

密钥应该是可靠且唯一的。

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

请注意,在许多情况下,也许几乎所有情况下,都是与某个人的互动合同一个系统,不一定是个人本身。

简单。它们不存在。高度敏感的安全系统采用指纹或虹膜扫描,但不包括法人,而且无论如何,这种扫描不是自然而然的。目前甚至没有实际政府的国家 "identify" 他们的公民拥有,嗯,较不先进的手段,根据定义也较少 "robust" (/dependable)。

正如其他人评论的那样,获得 100% 独特的东西将很困难 - 可能需要在极端情况和实际情况之间取得平衡。

根据实际情况,您可以假设以下字段组合在大多数情况下都可以唯一地标识一个人:

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

但是对于常见的名字,这就失败了——如果你的名字是 James Smith and you were born during a baby boom, it's not all that unlikely,那么其他人知道你的名字和出生日期。

要进一步缩小范围,您可以添加出生时间和地点 - 但这些可能更难获得。即便如此,也没有 100% 的铸铁保证——在历史的某个时刻,两个婴儿在同一天同一家医院出生,记录的出生时间和名字都相同,这并非完全不可能……

Imo,可用于识别人的唯一性且同时不是随机生成的最独特的值之一可能是通过帐户常量的一些数学计算生成的代码。其中一些可能是 日期出生地 或出生证明上的姓名。这将生成一个几乎唯一的 ID(出生时同名、同日、同地的人有多少?)而且很自然,因为它不是随机生成的。 一个很好的例子是意大利目前在卫生系统中使用的唯一标识个人以及 意大利财政代码(不要与 ID 混淆)

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

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