Un id di entità dovrebbe contenere informazioni sull'entità?

5

Se un'entità non ha un ID univoco, di solito usiamo il numero di incremento automatico per distinguere le entità. Ma a volte, dobbiamo consegnare quell'ID alle persone in modo che possano usarle. Quindi l'utilizzo di numeri incrementali automatici non è adatto per questo.

Pensa agli ID che dai agli studenti per distinguerli. In tal caso, gli ID dovrebbero avere una lunghezza fissa. Non puoi dare loro 1, 2, 3, ecc.

All'università, tutti avevamo numeri di studenti di 8 cifre (il mio era 00260014).

First 2 digits: The year we got accepted to university (00 = 2000).
Next 3 digits: The department (260 = Computer Sciences).
Last 3 digits: The order 

Pensa a SSN. È un numero di nove cifre nel formato "AAA-GG-SSSS". Le prime 3 cifre indicavano i numeri di area. Quindi, nel giugno 2011, SSA ha cambiato il processo di assegnazione SSN in "randomizzazione SSN". In questo modo, non è possibile stabilire a quale area è assegnato un SSN. Fornisce un certo anonimato e sicurezza.

Ora sto praticamente cercando di fare qualcosa di simile, cercando di assegnare numeri univoci (e forse anche alcune lettere) a tutti i servizi web disponibili nella mia azienda.

È una buona idea mettere alcune informazioni sul servizio web negli ID? O dovrei farlo in modo completamente casuale?

    
posta Ramazan Polat 10.03.2017 - 23:07
fonte

1 risposta

3

Il significato della codifica in un ID entità può essere utile se il significato sarà usato dagli utenti.

Gestire le collisioni è un problema che può diventare piuttosto sgradevole. Devi prima assicurarti che il tuo sistema abbia una bassa probabilità di produrre una collisione, e quando succede, hai bisogno di un meccanismo per disambigarli.

E le cose diventano molto più interessanti quando il tuo codice di identificazione Id ha un bug sottile che passa inosservato per un po 'di tempo nella produzione. Quindi potresti finire con un sacco di ID che non si adattano perfettamente al pattern e codificano in modo subdolo, ma poiché sono già in uso là fuori, puoi correggerli dalla tua parte e poi implementare una sorta di mappatura della correzione, oppure lasciarli come sono e sperare che gli utenti non se ne accorgano e sperare che non infranga qualcos'altro che si basa sul significato nell'ID.

E il tuo esempio con SSA e SSN indica che a volte il significato in un identificatore può causare problemi che vanno oltre quelli tecnici.

Se il tuo sistema non ha bisogno di esso (se non aggiungerà alcun valore principale), ti consiglio di limitarti a utilizzare un ID numerico auto-incrementato.

    
risposta data 10.03.2017 - 23:17
fonte

Leggi altre domande sui tag