9
votes

Longueur de champ de code à barres

J'écris du logiciel de présence. Chaque membre aura une carte d'identité avec un code à barres qu'ils utiliseront pour se connecter aux événements. Combien de temps le champ de code à barres doit-il être dans ma base de données? J'aimerais accepter le code 39 et code 128 codes à barres. Je sais que ce sont des codes de longueur variable, alors que dois-je définir la longueur maximale?

Merci!

Edit: Mes clients utiliseront une variété d'outils d'impression de code à barres tiers.


0 commentaires

4 Réponses :


5
votes

Code 128 peut faire 128 caractères ASCII afin de définir la longueur maximale sur 128 (ou plus, cela n'a pas d'importance).

Permettez-moi de préciser cette dernière déclaration. Les champs de texte variable utiliseront 1 octet par caractère (ou plus pour les champs de type Unicode, mais ignorons celles-ci pour l'instant) plus des frais généraux. Que les frais généraux peuvent être aussi peu que 1 à 4 octets ou autant que 16 ou plus en fonction de la base de données.

Mais le point est que si vous stockez 100 caractères dans un champ VARCHAR (128) champ ou a varchar (1000) Le champ utilise toujours le exactement identique quantité d'espace .

Le seul problème que vous rencontrez est la limite de ligne. Cela aussi dépend de la base de données. Sur certains, par exemple, la ligne entière ne peut que prendre jusqu'à 64 k de taille, de sorte que la somme de toutes tailles ne peut pas dépasser cela. Autre que cela n'a pas d'importance.


3 commentaires

Corrige-moi si je me trompe, mais ce Article Wiki dit que le code 128 peut encoder tout le 128 caractères ASCII, ce n'est pas moins de 128 caractères. Les codes à barres de notre DBS sont de 25 caractères et nous n'avons eu aucune plainte.


@Tkerwood vous avez raison. Le code128 n'est pas la limite au nombre de caractères, mais le jeu de caractères pouvant être codé. Le reste de cette réponse, re: la taille de Varcharne dans la base de données est correcte.


Maintenant, il y a Trop de doutes (y compris la mine) environ 128 limites de caractères. Donc, peut-être qu'il est temps de corriger votre déclaration ou de fournir une source pour cette limite de 128 caractères.



5
votes

Ces formats peuvent facilement encadrer de nombreux chiffres, sûrement plus que nécessaire pour un identifiant unique. Donc, la question n'est-elle pas simplement la question, quelle est la durée de vos identifiants? Est-ce que 10 chiffres sont nombreux? puis 10 caractères. Ou s'ils sont des identifiants numériques, vous ne devez même pas stocker comme une chaîne de caractères. Utilisez un type de SQL numérique.


0 commentaires

6
votes

Il n'y a aucune contrainte sur le code général 128 Symbologie, mais par exemple, l'une des spécifications d'application (GS1) définit des limites pratiques:

Caractéristiques de la taille du code à barres GS1-128:

  • La longueur physique maximale est de 165,10 millimètres (6.500 pouce) comprenant des zones silencieuses.
  • Le nombre maximal de caractères de données dans un seul symbole est de 48.

    Spécifications générales GS1 Section 5.4.1 : "Caractéristiques de la symbologie GS1-128".

    Un exemple de démonstration de la taille des contraintes pour le code 128 est fourni dans Cette réponse .


5 commentaires

Les limites à laquelle vous vous référez s'appliquent à la norme d'application GS1-128 pour le code 128 plutôt que la symbologie des parents qui ne s'appliquent aucune contrainte de ce type.


@Terryburton Ouais, mais bonne chance à numériser un code à barres de 9 pieds de large.


@Beejor Ceci est répondu plus en détail ici: Stackoverflow.com/a/31359916/2568535


@ Therryburton Link a disparu :(


@Konrads J'ai révisé la réponse d'une manière qui espérait être fidèle à l'original.



-3
votes

Le code 39 est limité à 43 caractères. En totalité de code ASCII 39 symboles 0-9, A-Z, ".", "-" et l'espace sont identiques à leurs représentations dans le code 39.


1 commentaires

43 Différents caractères dans son alphabet. Sans rapport avec la longueur.