Oracle 数据库优秀实践中的代理项密钥



我有几个系统,我需要将这些系统中的数据导入到一个公共表中。但 ID 仅在源系统中是唯一的。因此,我需要创建自己的主键来唯一标识目标表中的此数据。

解决问题的最佳做法是什么?我不想将主键创建为字符,也不想通过添加 1000000000 来生成 ID。与系统名称的串联将构建字符数据类型。您有想法或解决方案吗?

感谢您的帮助。

使用串联创建的主键不是好的做法,你是对的。它将在未来给您带来问题,找出并解决密钥。我认为最佳实践是创建由 2 个属性组成的密钥,例如 SYSTEMID、ID 那里的 ID,您可以保留系统中的旧 ID,这对 2 个属性为您提供唯一的 PK。

没有最佳实践,只有意见。但通常,将源系统密钥用作数据仓库(或要构建的任何数据存储(中的主键是一个坏主意。

为目标表创建新列,至少是代理主键;标识原始系统的东西也非常有用。在加载数据时填充这些内容。您可能希望强制(source system key, source system name )作为唯一键,在这种情况下,您需要添加该原始系统标识符列。

相关内容

  • 没有找到相关文章

最新更新