一个人在不同系统中的通用标识符

Common identifier for a person across disparate systems

不确定哪个是最好的 Stack Exchange 网站,所以我会在这里试试。

我有一个网络应用程序,用于存储组织的用户纪律数据。有些客户不想将他们的员工输入多个系统,而是希望将基本的人事数据从他们的源(例如 HR/ERP)数据库推送到我们的(例如名字、姓氏、出生日期、职位等数据)。

我们的客户正在使用一系列现有系统来存储他们的数据,例如 Oracle、SAP、JD Edwards 等

我熟悉获取此数据的技术方法(例如网络服务、网络 API),但不熟悉某个人的姓氏更改时的情况(例如珍妮特史密斯结婚并成为珍妮特母鹿)。除非在两个系统中都有该人的唯一标识符,否则我看不出如何可靠地管理这种变化。

请问如何最好地管理这个过程?是否向目标数据库添加了包含源数据 UID 的附加字段?或者,双方是否同意共同领域,例如员工编号,永远不会改变?

是的,UID 是唯一的解决方案。例如,这个问题也出现在医疗系统中。另一个是照片,我不确定哪个会导致更多问题!

我知道为此使用 "external_id" 字段的方法。在许多系统的情况下,可以利用多个外部 ID。

这个问题在很多情况下都会出现。一个案例是 得克萨斯州的学校系统,该系统通过众多教育子系统对学生进行纵向跟踪。在某些情况下(虽然不是全部)提供唯一标识符的社会安全号码被认为过于敏感而无法使用。 因此,已经为每个学生和教职员工生成了一个唯一标识符。这是与每个人相关的永久信息的一部分,无论工作变更、地点变更或名称变更如何。

link 描述了唯一 ID 的基本原理。

link 是有关德克萨斯学生数据系统 (TSDS) 唯一标识符的文档。您可能会在最感兴趣的文档末尾找到 XML 示例。许多信息涉及提交 id 请求,其中需要人口统计信息来消除歧义。

基本上,类似于 Java UUID 作为数据库中的额外字段的内容应该足以实现您的目标。

希望这对您有所帮助。