He estado usando la identificación de empleado de nómina en la mayoría de mis aplicaciones y tablas de bases de datos como identificador único.
Recientemente, nuestra empresa cambió a un nuevo sistema de nómina y ahora se asigna una nueva identificación de empleado para todos los empleados.
Los empleados existentes tendrán ambas identificaciones, pero los nuevos empleados solo tendrán la nueva identificación.
Tengo problemas para actualizar mis aplicaciones existentes para acomodar este cambio (por ejemplo, ¿cómo agrego una nueva entrada a mi tabla existente con la nueva ID: debo crear una nueva columna? ¿Usar la columna existente?).
Tengo unos cientos de tablas/aplicaciones con la identificación anterior incrustada en ellas, por lo que no es trivial actualizarlas todas.
El nuevo ID de empleado también tiene un tipo de datos diferente al anterior (carácter frente a entero).
¡Cualquier sugerencia o idea será muy apreciada!
Este es un resultado desafortunado, pero definitivamente sucede. Tienes mis condolencias.
Trabajo en una gran universidad y tenemos algunos sistemas a los que les gusta usar diferentes identificadores únicos para las personas. Por lo general, usamos una tabla puente para lidiar con esto. En esencia, esta es una tabla simple que permite la conversión entre dos o más sistemas de identificación.
Nuestro ERP principal emite su propio identificador único, y todos los demás se traducen de un lado a otro utilizando los puentes. Parece que su sistema no estaba generando sus propios identificadores únicos y, en cambio, dependía de un sistema externo para hacerlo. Yo diría que esto fue un error.
Dicho esto, no hay ninguna razón técnica por la que no pueda generar identificaciones como lo ha hecho en el pasado y mantener ambas en el futuro. Incluso si no tiene el sistema anterior, conoce el formato y probablemente pueda duplicarlo con un esfuerzo mínimo.
Ejecutar este sistema de identificación dual agrega un poco de complejidad, pero si agrega otro producto que intenta poner otro sistema de identificación más... puede valer la pena.
Lamento que mi respuesta sea vaga, pero hay muchos casos extremos que podrían influir en las cosas en varias direcciones aquí.
Sugeriría tener una tabla de employees con una fila por empleado.
Esta tabla tendría una identificación generada automáticamente específica para su sistema de base de datos . Esta identificación sería la clave principal de los employees y se usaría para todas las referencias de clave externa.
Cualquier otra identificación sería simplemente un atributo en la tabla de employees . Están tan cerca de cualquier otra tabla como una sola join .
Desafortunadamente, modificar su base de datos existente para una estructura más segura probablemente sería un poco de trabajo.