当唯一标识符改变时,如何更新表?

toe95027  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(312)

我在大多数应用程序和数据库表中都使用payroll employee id作为唯一标识符。
最近我们公司换了一个新的工资系统,现在给所有员工分配了一个新的员工id。
现有员工将拥有两个id,但新员工将只拥有新id。
如何更新现有应用程序以适应此更改(例如,如何使用新id向现有表中添加新条目:是否应创建新列?使用现有列。
我有几百个嵌入了旧id的表/应用程序,所以更新它们并不是件小事。
新的雇员id的数据类型也与旧的不同(字符与整数)。
如有任何建议或想法,我们将不胜感激!

avkwfej4

avkwfej41#

这是一个不幸的结果,但它肯定会发生。我向你表示哀悼。
我在一所大型大学工作,我们有一些系统喜欢为人们使用不同的唯一标识符。我们通常使用桥接表来处理这个问题。本质上,这是一个简单的表,允许在两个或多个标识系统之间进行转换。
我们的主要erp发布它自己的唯一标识符,所有其他的都使用桥接器来回转换。听起来您的系统并没有生成自己的唯一标识符,而是依赖外部系统来生成。我认为这是个错误。
这就是说,没有技术上的原因,你不能像过去一样生成id,并保持两者向前发展。即使您没有旧的系统,您也知道格式,可以用最小的努力复制它。
运行这个双标识系统增加了一点复杂性,但是如果您添加了另一个产品,试图放置另一个标识系统。。。也许值得。
很抱歉,我的回答含糊不清,但有很多边缘的情况,可能会影响事情的几个方向在这里。

lrpiutwd

lrpiutwd2#

我建议你做个 employees 每个员工一行的表。
此表将具有特定于数据库系统的自动生成的id。此id将是的主键 employees 用于所有外键引用。
任何其他ID都只是 employees table。它们和其他table一样接近 join .
不幸的是,修改现有的数据库以获得更安全的结构可能需要大量的工作。

相关问题