Question sur le "type", INT, Char... ? - SQL/NoSQL - Programmation
Marsh Posté le 14-12-2008 à 16:31:09
D'abord, je te dirais de ne pas trop être obséder par la taille des champs. La plus part du temps, un varchar/text suffit. En fonction de ton sgbdr tu auras au moins 3 variantes de type texte:
- char(n) : champ d'exactement n caractère, qui a mettre du bourage avec des espaces (ou autre). C'est bien pour un code produit à n caractères exactement
- varchar(n) : champ pouvant aller jusqu'à n caractères. pas de bourrage. c'est bien si tu as un champ dont la taille maximale est bornée
- text : champ illimité
Sachant que beaucoup de sgbd implémentent en fait varchar et text de la même manière, varchar étant juste un text avec une contrainte de taille.
La vraie question c'est donc souvant: la taille de mon champ est elle fixe ou pas. C'est pas la peine de faire un char(10) pour ensuite y insérer par exemple 'taz' qui sera converti en 'taz ' et ensuite récupérer ce champ et faire un monChamp.stripSpaces(). une IP n'a pas une taille fixe, un MAC si. (d'ailleurs certains SGBDR ont des types spéciaux pour ces adresses).
Si t'es pas très sur sur les contraintes de taille (varchar ou text), prends un type text illimité, ça ne coutera probablement pas plus d'espace disque. évite les limitations à la noix.
ton code société, bah si c'est du "NI XXXXXXX" et bien magique, c'est en fait un 'int' ... plus besoin de champ texte.
Marsh Posté le 15-12-2008 à 07:19:31
Salut Taz
Merci pour ta réponse !
Je n'avais pas vu les chose de cette manière pour le numéro interne !
En fait c'est une base de données qui seras utilisé par une appli ( moteurs de recherches) que je vais créée dans le cadre du projet de seconde année de mon BTS... .
L'application seras en Visual basic .net ou Csharp
Merci
Marsh Posté le 13-12-2008 à 21:28:28
Bonjour
avec Wampserver et sous PHPMyAdmin.
Je voudrais savoir quel type de variable utiliser pour mes tables.
pour une adresse IP: char de valeur 15 ?
Adresse MAC char de 17 ?
Pour un lieu je pensais à char avec 20 comme valeur pour voir large. est ce correct ?
Et pour les numéro interne à la société du genre: NI 1685896:
l'espace compte comme un caractère ? donc dans ce cas un char ayant une valeur de 10 serais correct ?
Merci pour votre aide