Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Garder le zéro initial dans un champ numérique

6 réponses
Avatar
Olivier Masson
Bonjour,

peut-on intégrer le zéro initial, par exemple pour un code postal ou un
numéro de téléphone, dans MySQL (en le stockant ou en sortie, mais en
gardant un champ numérique) ou mieux vaut-il gérer ça avec la langage
qui s'occupera de la présentation ?

Merci.

6 réponses

Avatar
Antoun

OK, malgré la remarque de Antoun - que je note -, je vais passer en
char. J'ai la manie de vouloir tout mettre au millimètre, même quand
c'est inutile. Ainsi, je vais chercher une liste exhaustive de prénoms
pour savoir de quel longueur max sera mon champ prénom... J'essaie de me
soigner :)



et si tu n'as, au pire, que des Jean-Paul, que feras-tu le jour où un
Timothée-Balthazar débarquera ?
Avatar
Olivier Masson
Antoun a écrit :

et si tu n'as, au pire, que des Jean-Paul, que feras-tu le jour où un
Timothée-Balthazar débarquera ?



Ah, ah, c'était sans compter sur mes prévision de prénoms (et noms, de
plus en plus courants) composés ! :)
Sans rire, je perds du temps à voir si je vais mettre un VARCHAR(40) ou
un CHAR(30) sur le champs 'trucmuche' : est-ce qu'un tel choix (gardons
les 2 options que j'ai cité) peu engendrer de grosses différences au
niveau de la taille de la base et du temps des requêtes sur 1000
enregistrements, 10000, 100000 ?
Avatar
Patrick Mevzek
Le Fri, 18 Aug 2006 10:46:59 +0200, Olivier Masson a écrit :
Sans rire, je perds du temps à voir si je vais mettre un VARCHAR(40) ou
un CHAR(30) sur le champs 'trucmuche' : est-ce qu'un tel choix (gardons
les 2 options que j'ai cité) peu engendrer de grosses différences au
niveau de la taille de la base et du temps des requêtes sur 1000
enregistrements, 10000, 100000 ?



CHAR() est surtout un héritage du passé, où les contraintes techniques
faisaient que les cases devaient être fixées en longueur.
Maintenant, il y a vraiment très peu de cas de figure où il a un sens,
ie où l'on a des chaînes uniquement et rigoureusement toutes de la même
taille.

En particulier, dans votre cas de figure, si c'est bien toujours stocker
des prénoms, CHAR() serait un bien mauvais choix selon moi.

Reste donc VARCHAR() et TEXT. Il n'y a pas nécessairement de différences
notables entre les deux, cela dépend du SGBDR. PostgreSQL par exemple
gère les deux de la même façon, donc mêmes performances. Ce qui fait
qu'on préférera alors quasimment systématiquement TEXT.

Après, au niveau de la taille de la base cela ne changera pas grand
chose, les deux doivent être codés en gros pareil : stockage de la
taille + du contenu.

Mais bon rien ne peut remplacer des tests avec votre jeu spécifique de
données et votre SGBDR et sa configuration logicielle et matérielle.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
<http://www.dotandco.net/ressources/icann_registrars/details/index>
Avatar
Thierry Boudet
On 2006-08-18, Patrick Mevzek wrote:

Reste donc VARCHAR() et TEXT. Il n'y a pas nécessairement de différences
notables entre les deux, cela dépend du SGBDR. PostgreSQL par exemple
gère les deux de la même façon, donc mêmes performances. Ce qui fait
qu'on préférera alors quasimment systématiquement TEXT.



Sauf qu'on peut fixer une taille limite au VARCHAR, ce qui
peut parfois être un bon garde-fou.


--
David Lightman: What is the primary goal?
Joshua: You should know, Professor. You programmed me.
David Lightman: C'mon. What is the primary goal?
Joshua: To win the game.
Avatar
Patrick Mevzek
Le Fri, 18 Aug 2006 13:31:08 +0000, Thierry Boudet a écrit :
Reste donc VARCHAR() et TEXT. Il n'y a pas nécessairement de différences
notables entre les deux, cela dépend du SGBDR. PostgreSQL par exemple
gère les deux de la même façon, donc mêmes performances. Ce qui fait
qu'on préférera alors quasimment systématiquement TEXT.



Sauf qu'on peut fixer une taille limite au VARCHAR, ce qui
peut parfois être un bon garde-fou.



Sauf que, Murphy aidant, quelque soit la limite qu'on fixe, parfois on
aura besoin de la dépasser :-)

Donc dès qu'on a le moindre doute -> TEXT, si cela n'a pas d'impact
négatif sur les performances du SGBDR.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
<http://www.dotandco.net/ressources/icann_registrars/details/index>
Avatar
Olivier Masson
Patrick Mevzek a écrit :

Sauf que, Murphy aidant, quelque soit la limite qu'on fixe, parfois on
aura besoin de la dépasser :-)

Donc dès qu'on a le moindre doute -> TEXT, si cela n'a pas d'impact
négatif sur les performances du SGBDR.




Bon, j'abandonne définitivement le CHAR partout alors :) Merci.