Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1237 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  champ ENUM ou VARCHAR ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

champ ENUM ou VARCHAR ?

n°1427891
Asthom
FREE PIERRE TRAMO
Posté le 20-08-2006 à 10:26:42  profilanswer
 

Bonjour,
 
J'utilise MySQL et j'ai quelques questions :

  • J'ai un champ dans ma table qui ne sera remplit qu'avec les chaînes "integer", boolean" ou "string" donc que vaut-il mieux utiliser comme type de colonne ? ENUM("integer", "boolean", "string" ou VARCHAR(7) (voire CHAR(7) car ils font tous quasiment 7 caractères et ça sera plus rapide en lecture) ?
  • Chaque entrée dans la table correspond à un ou plusieurs logiciel. Le but, après, est d'afficher les entrées correspondant à un logiciel donné. Là, je vois donc une possibilité évidente de stockage : crééer une colonne INT(1) par logiciel qui prendra la valeur 0 (= ne correspond pas à ce logiciel) ou 1 (= correspond à ce logiciel). Normalement je n'ajouterait pas souvent de logiciels dans la liste de logiciels "possibles" mais si c'est le cas il faudra à chaque fois que je rajoute une colonne à la table. Une autre solution est d''utiliser qu'une colonne qui s'appelle "logiciels" et de mettre comme valeur "logiciela;logicielc;logicield" et après d'utiliser une requête SELECT ... LIKE ... quand je veux afficher les entrées pour un logiciel donné. Quelle est la meilleure solution selon vous ?


Ai-je été assez clair ? :?
 
Merci


---------------
Président de l'intégration 2006 à l'INSA de Rouen.
mood
Publicité
Posté le 20-08-2006 à 10:26:42  profilanswer
 

n°1428223
betsamee
Asterisk Zeperyl
Posté le 20-08-2006 à 21:50:55  profilanswer
 

premiere question j'aurais utilise un varchar (as tu vraiment besoin de l'indexage du champ enum?je crois pas que ce soit une bonne maniere de reflechir que de dire que toutes les valeurs possiles font 7 caracteres)
deuxieme question j'aurais plutot fait 3 tables;
 
Tatable1
--------
Cle_Table1|Libelle_entree
 
Logiciel
--------
Cle_Logiciel
 
Table1_Logiciel (qui fait le lien entre les entrees et les logiciels)
---------------
Cle_Table1|Cle_Logiciel
 
exemple;
--------
 
Table1
--------
1|toto
2|tutu
3|tata
4|tintin
 
Logiciels
---------
1|A
2|B
3|C
4|D
 
Table1_Logiciel
---------------
1|1
1|3
2|2
2|4
4|3
3|1
 
toto est lie aux logiciels A et C
tutu est lie ux logiciels B et D
tata est lie au logiciel A
tintin est lie au logiciel C


Message édité par betsamee le 20-08-2006 à 21:57:32
n°1429190
Asthom
FREE PIERRE TRAMO
Posté le 22-08-2006 à 11:24:24  profilanswer
 

D'accord !
 
Par contre pour la première question je pense plutôt resté au type "ENUM" ;)
 
Merci :)

n°1429229
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-08-2006 à 12:09:34  profilanswer
 

moi j'aurais plutôt fait une table de référence...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  champ ENUM ou VARCHAR ?

 

Sujets relatifs
champ textareaAttribution valeur par defaut d'un champ text formulaire
[SQL SERVER 05][SSIS] Pb insert champ dateInserer une valeur d'une base de donnée dans un champ de texte
MySQL - Accents dans un champ VARCHAR ?[RESOLU][java] transformer un champ String en date
Valeur par défaut qui se charge dans le champ textelimitation champ feuille
Réquete sql champ date recuperer le MOIS 
Plus de sujets relatifs à : champ ENUM ou VARCHAR ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR