Ver Mensaje Individual
  #1  
Antiguo 19-06-2024
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 297
Reputación: 10
manelb Va por buen camino
Tablas con PKs Negativas

Tenemos un ERP al que estamos haciendo algunas ampliaciones y vamos a conectar a través de un sistema REST con una aplicación de terceros para poder añadir movimientos desde el exterior.

En nuestro sistema todas las tablas disponen de un ID que se autoalimenta a partir de generadores propios para cada una de las tablas.
Tenemos un Generador para cabeceras de albaranes, otro para líneas de albaranes, y así con todas las tablas.

Los registros que nos llegan a través de las peticiones REST tienen su propio ID y debemos asegurarnos de que no vamos a tener colisiones con IDs duplicados.
Estos registros pueden ser de alta, de modificación o de borrado, por lo que es necesario conservar de alguna forma el ID original.

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.

De todas estas opciones me decanto absolutamente por la de IDs negativos ya que, claramente, es la que representa menos trabajo y creo que es la más eficiente.

La pregunta:
Puedo tener algún problema en Firebird por el hecho de tener IDs, PKs, FKs con valores negativos.
He estado haciendo algunas pruebas y todo parece funcionar correctamente, pero desearía saber si alguien ha tenido alguna experiencia en este sentido.

Gracias por vuestros comentarios
Responder Con Cita