我有一个由其他人设计的数据仓库。那个人说每个顾客都有一个不随时间变化的唯一标识符是不可能的。我不太了解数据架构,我想知道这是否属实。
如果可能的话,会有多复杂?鉴于有关客户的任何其他信息可能会在某些时候发生变化。
由于
答案 0 :(得分:1)
数据仓库信息通常来自其他一些系统。如果人们无法被唯一识别,那么该系统应该被设计为具有代理密钥。人们很少有一个不是代理人的好的唯一标识符。电子邮件变得不合适(人们可能有多封电子邮件)并且可以重复用于其他人,SSN并不像您预期的那样独特,甚至医生的医疗liscence数据最终因数据输入错误而不是唯一的在源系统中。即使与地址等其他信息相结合,名称显然也不是唯一的。在我有理由查询的数百个数据库中,我从未见过任何一个对于不是代理键的人具有良好唯一标识符的数据库。
如果原始系统的设计者不称职(没有数据库表应该丢失主键)那么数据仓库确实可能无法唯一地识别个体,并且数据中存在重复的可能性是正确的100%。如果数据仓库不是来自原始系统,则向数据仓库添加代理键是没有意义的。在更新信息时,您如何知道John Smith是否为id 1234或id 4567?