Comment stocker vos codes-barres en base de données
Stocker des codes-barres en base de données paraît trivial — c'est juste du texte. Mais quelques choix techniques évitent des bugs fréquents : zéros initiaux qui disparaissent, indexation lente, doublons logiques non détectés.
Toujours stocker en VARCHAR, jamais en INTEGER
Un EAN-13 commence parfois par 0 (préfixe 000-019 pour les codes convertis depuis UPC). Stocké en entier, ce zéro disparaît et le code devient invalide. Utilisez systématiquement VARCHAR(14) ou TEXT.
Validation à l'insertion
- Vérifier la longueur exacte (8, 12, 13 ou 14 selon le format)
- Vérifier que tous les caractères sont des chiffres (regex ^[0-9]+$)
- Recalculer la clé de contrôle et la comparer au dernier chiffre
- Rejeter si invalide plutôt que corriger silencieusement
Indexation et contrainte unique
Ajoutez un index UNIQUE sur la colonne du code pour empêcher les doublons et accélérer les recherches en caisse ou en stock. Dans la plupart des SGBD (PostgreSQL, MySQL, SQLite), l'index B-tree par défaut est optimal.
Questions fréquentes
Faut-il chiffrer les codes-barres ?
Non, ce ne sont pas des données sensibles. Sauf cas particulier (numéros de série liés à une licence).
Peut-on stocker l'image SVG en base ?
Possible mais déconseillé. Regénérez l'image à la volée à partir du code texte, c'est plus léger et toujours à jour.
Passez à l'action