Sto lavorando a un progetto con un cliente che deve fare affidamento su un set di dati proprietario. Dispongono inoltre di dati personalizzati che si adattano logicamente ai dati proprietari. Quello che fanno è usare le stesse tabelle ma con ID negativi. Quindi un esempio sarebbe
Tabella : animali
Campi : animal_id, name, can_purr
Quindi l'organizzazione che fornisce i dati fornisce Animali
1, Cat, yes
2, Dog, no
3, Mouse, no
E poi il mio cliente sta aggiungendo i loro Frankenmals
-1, Werecat, yes
-2, Werewolf, no
-3, Jackalope, no
Quindi gli altri FK di Animal possono essere riutilizzati da Werecat e Jackalope. Ogni tanto un nuovo animale viene riconosciuto dal manutentore dei dati e aggiunge, o qualcosa si evolve in una cosa nuova in modo che le chiavi originali siano importanti da mantenere. L'industria frankenanimal utilizza tutto questo database e può capirmi se parlo di Animal 1, ma non se ho trasformato Animal 1 in qualcosa di diverso da un gatto che fa le fusa. Non esiste alcuna relazione implicita o mantenuta tra -2 e 2.
I numeri negativi potrebbero essere il modo migliore per farlo. Mi fa accapponare la pelle perché l'ID rappresenta qualcosa di diverso dall'identificazione dei record.
Molti altri sistemi stanno cambiando in questo momento. Quindi, se questo non è un grande design, ora è il momento di cambiarlo.
C'è qualcosa di così sbagliato nell'approccio dei numeri negativi? Il rischio principale che vedo è se il gestore dei dati decide di utilizzare identificatori negativi per i propri scopi? Un aggiornamento automatico potrebbe causare havok. Ma l'automazione potrebbe controllare quella condizione, quindi, non così male?
Non riesco proprio a trovare molti consigli in materia di best practice su questo. Quindi hai fatto i numeri negativi e ti sei pentito? Perché? O ti sei trasformato in un nuovo schema e poi te ne sei pentito per la manutenzione o per qualche altro motivo?
Le mie scuse se questo è troppo soggettivo. Solo non sono sicuro di come scoprire se sono solo illogico o se il doppio scopo sull'ID del record è già abbastanza grave da meritare una riprogettazione.