ricicliamo!

allora, fate conto che bisogna tenere sincronizzati due sistemi di database. Uno basato su Sap e l’altro Oracle. Il primo è il “master” e il secondo è il “client”. Il master pubblica, tramite un web service SOAP, una tabella piuttosto importante, in pratica la lista di utenti dei sistemi. Ho scritto un bel programmino java che ogni quattro ore va ad invocare il web service, legge la tabella e la importa nel database client. Tutto sembra funzionare per bene.
Qualche settimana fa, hanno aggiunto agli attributi degli utenti un campo “DataCessazione”, che significa che l’utente da un certo momento in poi non è più attivo.
Ancora tutto bene.
Adesso, lato “master”, hanno ben pensato che, se un utente non è più attivo, si può anche riutilizzare la sua chiave primaria per un altro nuovo utente !!! che teschioni!
Quindi adesso sul “master” ci sono una cinquantina di utenti “nuovi” che hanno chiavi primarie di utenti “vecchi”. Io sul “client” mi rifiuto di “riutilizzare” così gli utenti vecchi, perchè sennò tutti i dati storici mi si impapocchiano.
Ecco come due sistemi sincronizzati sono di fatto desincronizzati. Almeno finchè i furboni cambieranno idea sul riciclo… “dopo il vetro, le lattine e la plastica, è ora di riciclare le chiavi primarie!!!”