我有几个系统,我需要将这些系统中的数据导入到一个公共表中。但 ID 仅在源系统中是唯一的。因此,我需要创建自己的主键来唯一标识目标表中的此数据。
解决问题的最佳做法是什么?我不想将主键创建为字符,也不想通过添加 1000000000 来生成 ID。与系统名称的串联将构建字符数据类型。您有想法或解决方案吗?
感谢您的帮助。
使用串联创建的主键不是好的做法,你是对的。它将在未来给您带来问题,找出并解决密钥。我认为最佳实践是创建由 2 个属性组成的密钥,例如 SYSTEMID、ID 那里的 ID,您可以保留系统中的旧 ID,这对 2 个属性为您提供唯一的 PK。
没有最佳实践,只有意见。但通常,将源系统密钥用作数据仓库(或要构建的任何数据存储(中的主键是一个坏主意。
为目标表创建新列,至少是代理主键;标识原始系统的东西也非常有用。在加载数据时填充这些内容。您可能希望强制(source system key, source system name )
作为唯一键,在这种情况下,您需要添加该原始系统标识符列。