Question de definition de champ

Question de definition de champ - SQL/NoSQL - Programmation

Marsh Posté le 07-09-2005 à 15:50:48    

Bonjour,
 
je realise un questionnaire du type multiple-choice pour une évaluation en ligne. Pour une question donnée plusieurs solutions sont envisageables 5 au total, cela ressemble schematiquement à ca:
 
Question 124: la pizza margaritha contient:
 
a. concombre
b. pamplemousse
c. tomate
d. fromage
e. peche
 
http://www.wh-hms.uni-ulm.de/~or2/Bilder/DB_proposals.jpg
http://www.wh-hms.uni-ulm.de/~or2/Bilder/DB_proposals2.jpg
 
 Est-il possible d'utiliser dans la definition du type de  mon champ sol1 (SET) les valeurs des colonnes precedentes? en l'occurence fromage et tomate, sachant que mes 5 solutions possibles changent à chaque question.
 
 
... de sorte à obtenir pour mon champ sol1  
set('valeur de prop1a','valeur de prop1b','valeur de prop1c,'...etc...')
et non pas
set('a', 'b', 'c', 'd', 'e')
et si oui comment??
 
Merci d'avance pour le coup de pouce.
 

Reply

Marsh Posté le 07-09-2005 à 15:50:48   

Reply

Marsh Posté le 07-09-2005 à 16:29:05    

Non, les valeurs d'un champ de type SET sont définies une fois pour toutes.
 
Remaques à propos de ton modèle de données :
 
Il me semble un peu faible et figé.
Il serait beaucoup plus souple d'utilisation avec plusieurs tables : Questions, Propositions, Solutions et éventuellement Résultats (ceux des Evalués à mettre en relation avec une table des Evalués si tu en as une.).
 
A+


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 07-09-2005 à 16:29:17    

Non, les valeurs d'un champ de type SET sont définies une fois pour toutes.
 
Remaques à propos de ton modèle de données :
 
Il me semble un peu faible et figé.
Il serait beaucoup plus souple d'utilisation avec plusieurs tables : Questions, Propositions, Solutions et éventuellement Résultats (ceux des Evalués à mettre en relation avec une table des Evalués si tu en as une.).
 
A+


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 07-09-2005 à 16:30:14    

Désolé pour la double réponse, j'ai eu un message d'erreur du forum, alors j'ai reposté :(


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 07-09-2005 à 16:35:45    

prop1a, prop1b, prop1c,...
 
c'est typiqueme le cas où il faut modéliser ta base un peu mieux. avec 3 tables au minimum


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 07-09-2005 à 17:49:30    

jagstang a écrit :

prop1a, prop1b, prop1c,...
 
c'est typiqueme le cas où il faut modéliser ta base un peu mieux. avec 3 tables au minimum


 
hmm.. je vois pas pourquoi. prop1a, prop1b, prop1c,prop1d, prop1e est un groupe de propositions correspondant à une question avec au grand max 3 groupes soit 15 propositions pour une question.
c'est un peu comme si j'avais:
nom, prenom, pseudo, age, adresse | tel, lieu de naissance....etc...
 
 
au plus ce que je pourrais faire c'est mettre mon 1er groupe (prop1a, prop1b, prop1c,prop1d, prop1e) dans une table et (prop2a, prop2b, prop2c,prop2d, prop2e) dans une autre mais je vois pas trop l'interet dans ce cas précis.
 
Enfin si t'as une proposition concrète je suis à l'écoute.
Merci pour la reponse rapide en tous cas, je me doutais un peu que ca ne marcherait pas vu que la reference MySQL n'avais rien precisé.. mais ca coute rien de demander. :jap:  
 
 
Quant à faire une table pour les solutions j'y ai reflechit aussi mais bon... faire une table seulement pour marquer la solution ca va me faire un bon flan de requettes a taper pour sortir quoi que ce soit, alors que en fin de compte tout va ensemble, là aussi ca m'aiderait si vous précisiez ce que ca me permettrait de faire et ce que ca m'empeche de faire... j'ai un peu de mal à avoir une vision globale de l'utilité de toute une multitude de tables.
 
J'ai deja une table de questions, une pour les propositions éventuellement une pour les réponses , histoire de pas melanger les torchons et les serviettes, une pour les évalués (ID_évalué,nom.prénom...) et une bien sûr une dans laquelle je place le nombre de points par question(ID_évalué,points_question_124, points_question_125, points_question_126,.....).
 
Là aussi faut-il que je crée une table pour chaque question afin d'y stocker les points de chaque évalué? si je pose par exemple 100 questions ca me ferait 100 tables...? et vu que le tout est censé être dynamique (php) bonjour le bazar. :pt1cable:  
Je voudrais quand même arriver à faire un truc propre et lisible, donc si vous avez des suggestions je suis preneur, quitte à y passer du temps. Vous pensez quoi du modèle?
 
 
Mon questionnaire est en fait un jeu de questions avec des sous-questions(3 au plus)

Question 124:

  • la pizza margaritha contient: (2pt)

a. concombre
b. pamplemousse
c. tomate
d. fromage
e. peche
 

  • et elle se mange: (2pt)

a. chaude
b. froide
c. moisie
d. verte
e. pas
 
Question 125:

  • vous faites du vélo

a. en ville
b. à la montagne
c. de course
d. moteur
e. cation

Reply

Marsh Posté le 07-09-2005 à 20:33:48    

Pourquoi tu sépares les questions des propositions ? Tu as plusieurs ensembles de propositions pour une même question ?
 
Intuitivement, j'aurais fait une seule table, par exemple:
 
- id de question,
- text de la question,
- proposition 1,
- booléen pour dire que la proposition 1 est correcte / fausse,
- proposition 2,
- booléen pour dire que la proposition 2 est correcte / fausse,
- etc.
 
Ca c'est dans le cas où le nombre de propositions est figé, sinon, faire une table à part, avec id question, et proposition / booléen par exemple.
 
Ca permet d'avoir des réponse correctes multiples à une même question ... Ca permet également d'afficher facilement la / les bonnes réponses en bouclant sur les propositions, et en regardant les booléens.

Reply

Marsh Posté le 07-09-2005 à 23:28:14    

protoss_tth a écrit :

J'ai deja une table de questions, une pour les propositions éventuellement une pour les réponses , histoire de pas melanger les torchons et les serviettes, une pour les évalués (ID_évalué,nom.prénom...) et une bien sûr une dans laquelle je place le nombre de points par question(ID_évalué,points_question_124, points_question_125, points_question_126,.....).
 
Là aussi faut-il que je crée une table pour chaque question afin d'y stocker les points de chaque évalué? si je pose par exemple 100 questions ca me ferait 100 tables...? et vu que le tout est censé être dynamique (php) bonjour le bazar. :pt1cable:  
Je voudrais quand même arriver à faire un truc propre et lisible, donc si vous avez des suggestions je suis preneur, quitte à y passer du temps. Vous pensez quoi du modèle?
 
 
Mon questionnaire est en fait un jeu de questions avec des sous-questions(3 au plus)


 
Le nombre de point n'a pas besoin d'une table à part, c'est une propriété de la question, donc ça va dans la table des questions.
 
Je vois un truc comme ça :
 
Table "Questionnaire" (pour gérer plusieurs questionnaires)
ID
LIBELLE (Nom/Titre du questionnaire)
ACTIF (Booléen)
...
 
Table Question
ID
ID_QUESTIONNAIRE (Id du questionnaire auquel appartient la question)
ID_QUESTION (ID de la Question principale si c'est une sous-question, sinon NULL)  
ORDER_NUM (Numéro d'ordre de la question dans le questionnaire ou dans la liste des sous-questions)  
LIBELLE (Texte de la question)
POINTS
...
 
Table Proposition
ID
ID_QUESTION
LIBELLE (Texte de la proposition)
VALID (Booléen qui indique que la réponse est juste ou non, sinon faire une table Reponse si plusieurs solutions sont possibles)
 
Table Evalue
ID
NOM
PRENOM
EMAIL
...
 
Table Evaluation
ID
DATE_TEST
ID_EVALUE
ID_QUESTIONNAIRE
ID_QUESTION
ID_PROPOSITION
...
 
Avec un modèle de ce genre, sauf erreur,  tu peux tout faire ! il n'y a pas de limites en nombre de question, de proposition et de sous-question.
Une même personne peux même faire le test plusieurs fois.
Tu peux choisir de stocker le total de points dans une table intermédiaire ou de ne pas stocker le détail des réponses, pour optimiser le nombre de requête, mais avec ce modèle il n'y a pas de redondance d'info et donc moins de risque d'erreur.
 
T'as essayé la programation objet ?
 
Pas besoin d'une table par question !
 
Remaque, quand tu commence à te dire que tu vas avoir besoin d'une table par "TRUC" (cf 100 questions -> 100 tables), c'est qu'il y a un gros problème dans ton modèle...
 
A+


Message édité par Mara's dad le 07-09-2005 à 23:34:30

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 08-09-2005 à 08:59:57    

protoss_tth a écrit :

hmm.. je vois pas pourquoi. prop1a, prop1b, prop1c,prop1d, prop1e est un groupe de propositions correspondant à une question avec au grand max 3 groupes soit 15 propositions pour une question.
c'est un peu comme si j'avais:


j'avais pas compris comme ça  [:jagstang]


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 08-09-2005 à 11:14:49    

Super merci pour les conseils. Je trouve la structure de la table question particulierement interessante je vais d'ailleurs la reprendre pour l'adapter à mes differents types de questions.
J'ai aussi en tête de gerer les synonymes et avec ce modèle j'aurais une gestion très efficace je pense.
 
C'est vrai que j'avais pas l'intention de faire un systeme aussi flexible mais qui peut le plus peut le moins comme on dit.
 
Thanks.

Reply

Sujets relatifs:

Leave a Replay

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