Cita:
Empezado por manelb
Para solucionar el problema se me ocurren varias opciones.
1.- Tener un rango diferente de IDs para los movimientos externos.
Por ejemplo sumar 10.000.000 al ID original (no garantiza al 100% las colisiones)
2.- Conservar los IDs originales pero con signo negativo
3.- Añadir un campo a la tabla con el ID Externo.
4.- Una tabla intermedia que me relacione el ID externo con mi ID.
|
Yo creo que también me decantaría por la 3.
1) Mezclas "cosas diferentes" en un sólo campo; Se me ocurren problemas como que puedan coincidir los rangos o que tengas que hacer JOIN contra tablas diferentes por el mismo campo,...
2) (entiendo que los conservas en el mismo campo cambiando los actuales). Lo mismo de antes en el mismo campo guardas cosas diferentes. No se qué pasará si ya estás haciendo referencia a esos ID's en otros lugares. Código condicional dependiendo de si el valor de un campo es positivo o negativo. raro...
3) Creo que es la correcta. Normalizada y la más clara.
4) Sería la escogida si la relación entre ID/IDExterno fuera 1..N; Si la relación es 1..1, 1..0 se puede usar esta o la anterior.