2010-04-18 25 views
8

Sto scrivendo un software di presenza. Ogni membro avrà una carta d'identità con un codice a barre che useranno per accedere agli eventi. Quanto dovrebbe essere lungo il campo del codice a barre nel mio database? Mi piacerebbe accettare codici a barre Codice 39 e Codice 128. So che questi sono codici di lunghezza variabile, quindi a cosa dovrei impostare la lunghezza massima?Lunghezza del codice a barre

Grazie!

MODIFICA: i miei clienti utilizzeranno una varietà di strumenti di stampa di codici a barre di terze parti.

risposta

9

Codice 128 può fare 128 caratteri ASCII quindi impostare la lunghezza massima su 128 (o superiore, non importa).

Lasciatemi chiarire questa ultima affermazione. I campi di testo variabili useranno 1 byte per carattere (o più per i campi di tipo Unicode ma ignoriamo quelli per ora) più un sovraccarico. Questo sovraccarico potrebbe essere di 1-4 byte o fino a 16 o più a seconda del database.

Ma il punto è che se si memorizza 100 caratteri in un campo VARCHAR(128) o un campo VARCHAR(1000) si utilizza ancora il stessa identica quantità di spazio.

L'unico problema che si incontra sono i limiti di riga. Anche questo dipende dal database. Su alcuni, ad esempio, l'intera riga può richiedere solo 64 KB, quindi la somma di tutte le dimensioni non può eccedere quella. A parte questo, non importa.

+8

Correggetemi se ho torto, ma questo [articolo wiki] (http://en.wikipedia.org/wiki/Code_128) dice che il codice 128 può codificare tutti i 128 caratteri ascii, non che è lungo 128 caratteri . I codici a barre nei nostri DB sono lunghi 25 caratteri e non abbiamo avuto alcun reclamo. – tkerwood

+1

@tkerwood hai ragione. Code128 non è il limite del numero di caratteri, ma è il set di caratteri che può essere codificato. Il resto di questa risposta, re: varchar nel database è corretta. – Sean

+1

Ora ci sono [troppi dubbi] (http://stackoverflow.com/questions/2660560/barcode-field-length/2660568#comment29063478_2660568) (incluso il mio) circa 128 caratteri limite. Quindi forse è il momento di correggere la tua dichiarazione o fornire una fonte per quel limite di 128 caratteri. – miroxlav

4

Questi formati possono facilmente codificare un sacco di cifre, sicuramente più del necessario per un ID univoco. Quindi non è la domanda semplicemente, per quanto tempo sono i tuoi ID? 10 cifre in abbondanza? quindi 10 caratteri. O se si tratta di ID numerici, non si dovrebbe nemmeno memorizzare come una stringa di caratteri. Utilizzare un tipo SQL numerico.

5

esistere limitazioni codice 128, in teoria, ma per esempio, una delle specifiche applicate (GS1) stabilisce i limiti pratici:

GS1-128 ha un massimo di 48 caratteri (esclusi caratteri speciali) o un massimo di 6,5 "(compresa zona tranquilla) Il limite si basa su se precedente

Fonte:. GS1-128 Symbol Specifications

+0

I limiti a cui si fa riferimento si applicano allo standard dell'applicazione GS1-128 per il codice 128 anziché alla simbologia principale che non applica tali vincoli. –

+1

@TerryBurton Sì, ma buona fortuna scansionare un codice a barre largo 9 piedi. – Beejor

+0

@Beejor Questa risposta è più esauriente qui: http://stackoverflow.com/a/31359916/2568535 –

-1

codice 39 è limitato a 43 caratteri in codice ASCII completa 39 Simboli 0-9, AZ,."." , "-" e lo spazio sono uguali alle loro rappresentazioni nel Codice 39.

+1

43 * caratteri diversi * nell'alfabeto. Non correlato alla lunghezza. –

Problemi correlati