[SGBD/Mysql] Choix multiples et stockage en BDD

Choix multiples et stockage en BDD [SGBD/Mysql] - SQL/NoSQL - Programmation

Marsh Posté le 26-08-2003 à 09:48:55    

Lut,
 
Ayant à récupérer une base Access pour en faire une utilisation constructive sur le web, je me pose des questions sur la logique de la personne qui l'a construite et ce que je peux en faire.
 
Comme il y a des chances que je passe le tout en Mysql, n'hésitez pas à orienter vos réponses de ce côté.
 
Il y a en particulier dans la base de nombreux champs correspondant à ce qui deviendra des checkbox (choix multiples, donc).
 
La gestion actuelle dans la base Access est de traiter chaque choix par un champ différent de type booléen.
 
Me posais la question de savoir si c'était la manière la plus cohérente de traiter ces cas, si un champ unique avec différentes valeurs regroupées (traitées ensuite par explode et implode) était plus logique, ou encore si un champ de type ENUM était plus approprié (sachant que les choix sont >64).
 
Bref, faire une base avec des multitudes de champs ou augmenter les traitements par PHP...
 
Si les 2 dernières solutions sont plus cohérentes, comment gérer l'import des données (y en a pas des millions, mais réentrer manuellement le tout me paraît un poil lourdingue).
 
Merchi d'avance.

Reply

Marsh Posté le 26-08-2003 à 09:48:55   

Reply

Marsh Posté le 26-08-2003 à 10:35:46    

la maniere la plus propre c'est la maniere "normalisée"
(style une table 'questionnaire' et une table 'reponses_possibles' qui contient X records par questionnaire)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 26-08-2003 à 10:51:43    

J'y avais vaguement songé, ça nous fait donc une table pour chaque série de checkbox.
 
C'est certainement le plus "normalisé" (Les champs de types ENUM ou SET sont du Mysql et pas du SQL ?).
 
Comme la chose doit être en plus multilingue, ça me paraît assez pratique.
 
Par contre pour l'import des données je sens que je l'ai assez profondément avec ce système, vu la différence de structures...
 
Merchi.

Reply

Marsh Posté le 26-08-2003 à 10:52:24    

mais non, pas une table pour chaque série de checkbox !! :heink:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 26-08-2003 à 10:58:04    

Hmpfff...
 
So what ?  
 
S'il y a plusieurs séries de checkbox et plusieurs autres champs dans le formulaire, qu'est-ce qui va où ?
 
(Parce que la seule fois où j'ai pratiqué la chose, en ASP/Access, j'avais un cas de choix multiples et j'ai fait une table liée à la table "principale" avec les différents choix).
 
Je m'excuse d'être un poil con, mais je prendrais volontiers des précisions.

Reply

Marsh Posté le 26-08-2003 à 11:04:52    

create table questionnaire (
id bigint auto_increment,
titre varchar(50),
description longtext,
auteur varchar(50),
date_debut datetime,
date_fin datetime);
 
create table questions (
id bigint auto_increment,
lang char(2),
questionnaire_id bigint,
question longtext);
 
create table questions_choix (
id bigint auto_increment,
question_id bigint,
reponse varchar(255));
 
 
je te laisse pondre les requetes :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 26-08-2003 à 11:08:40    

:jap:  
 
Z'êtes bien bon, monseigneur.
 
Mon neurone devrait se montrer capable de requêter là-dessus.

Reply

Marsh Posté le 26-08-2003 à 11:09:17    

DeliriumTremens a écrit :

:jap:  
 
Z'êtes bien bon, monseigneur.
 
Mon neurone devrait se montrer capable de requêter là-dessus.

syntaxe non garantie, et j'ai surement oublier de penser à des "details", mais bon t'as l'idée quoi ;)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed