Sto sviluppando un'applicazione web, questa applicazione dovrà generare un numero di ricevuta per ogni transazione confermata.
Che cos'è un buon numero di ricevuta? Penso che un numero di ricevuta non dovrebbe essere solo un numero progressivo generato dal database, ma dovrebbe avere un significato al di là di un numero di esecuzione unico.
Ecco ciò che ho inventato finora
Format: EYY-ddd-XXXXXXX
Example output: E13-146-0000001
Dove:
E
: è solo un segno per indicare che questo numero di ricevuta è stato generato dal mio sistema. Questo valore è sempre E
.
YY
: è l'anno corrente in cui è stato generato lo scontrino, quindi in questo caso è 13
ddd
: è il giorno dell'anno, 146
è il 26 maggio (nel 2013).
XXXXXXX
: è un numero progressivo di 7 cifre, fino a 9.999.999
Quindi il mio sistema può generare fino a 10 milioni di numeri di ricevute univoci ogni giorno fino al 2099.
Che ne pensi? È sensato? Qualsiasi suggerimento è apprezzato.
Aggiorna
A giudicare dai commenti fino ad ora, sembra che non ci siano specifici "pattern" o "best practice" per il numero di ricevuta. La mia intenzione nel porre la domanda è sapere se ci sono specifiche migliori pratiche nel generare il numero che dovrei sapere. Sembra che io sia libero di usare qualsiasi modello che ritenga sensato.
Altri requisiti
- Il più breve possibile (ecco perché non ho scelto YYYYMMdd-XXXXXXX)
- In qualche modo non ovvio (YYYMMdd è ovvio)
- Dovrebbe essere una lunghezza fissa. (È più facile rilevare se il cliente ha inserito un numero di ricevuta non valido)
- Può generare numeri abbastanza grandi (10 milioni al giorno sembra ragionevole, anche se dubito che il mio sistema sarà così popolare)
- Può essere trasformato in codice QR (in modo che il personale possa eseguire la scansione e verificare che il numero sia valido)
- Qualcuno parla del codice di rilevamento degli errori come l'ISBN , sembra buono ma non l'ho ancora letto.