A table!!! - SQL/NoSQL - Programmation
Marsh Posté le 03-02-2009 à 15:02:23
Bonjour,
Un petit conseil: essaye d'aérer un peu ton texte on lira mieux
Si je comprends bien tu veux créer 5 tables:
Jusque la ca va Ca serait bien si tu pouvais mettre les champs de chaque table
Ta question c'est quoi? Tu veux savoir comment transformer un "-1" en mécontent avant l'enregistrement?
Ou tu veux savoir comment lier question et réponse?
Marsh Posté le 03-02-2009 à 15:16:18
PERSONNE ( id_personne,relaisRH_personne)
SECTEUR(libelle_secteur,id_secteur)
QUESTION(libelle_question,id_question,cond_question)
REPONSE(coeff_reponse,HeureEnvoi_reponse)
QUESTIONNAIRE(id_quest,libelle_quest)
Transformer un "-1" en mécontent pas de souci, mais le probleme est que ce n'est pas forcèment mécontent, cela peut être " moins de 2 par semaine" , tu vois ce que je veux dire.
Donc j'ignore comment procéder pour joindre le coefficient a la réponse, qui peut être "mécontent" ou "moins de deux par semaine".
PS: je travaille en UML pour le moment, je n'ai donc pas créer les tables de liaisons
PS2: merci de ta réponse
Marsh Posté le 03-02-2009 à 15:19:37
Selon la question (donc l'id_question) et la réponse (coeff_reponse) tu veux afficher des trucs différents?
Genre question 1 coef= -1 => toto
Question 2 coef= -2 => TATA
C'est ca?
Si c'est le cas, je vois bien une table de correspondance.
Marsh Posté le 03-02-2009 à 15:23:48
Oui aspirateur, c'est exactement ce que je veux faire
Tu penses a une simple table qui pointe vers coeff, avec un attribut (champ ) pour la réponse du coeff -1, un champ pour la réponse du coeff 0 et un champ pour la reponse du coeff 1 ?
Marsh Posté le 03-02-2009 à 15:28:43
Non, je ferai comme ca à ta place:
Prenons les 2 tables concernées
QUESTION(id_question,libelle_question,cond_question)
REPONSE(id_reponse,coeff_reponse,HeureEnvoi_reponse)
Je ferai une troisieme
Correspondance(id,id_question, coeff_rep, reponse_clair)
Maintenant je dis pas que c'est la meilleure solution. Pourquoi ne pas vouloir stocker la réponse complète dans ta table?
Marsh Posté le 03-02-2009 à 15:32:06
Citation : |
le premier champ correspond a "id_reponse"?
Citation : |
C'est ce que je voulais faire mais un collègue plus expérimenté m'a dit qu'on voulait simplement récuperer la réponse de l'individu et non pas toute la reponse...
Marsh Posté le 03-02-2009 à 15:42:01
Ok, prenons un peu plus de temps:
Voici tes 5 tables. Chaque table doit avoir une clef primaire donc une donnée qui ne peux pas être 2 fois dans ta table.
PERSONNE ( id_personne, relaisRH_personne)
SECTEUR(libelle_secteur,id_secteur)
QUESTION(libelle_question,id_question,cond_question)
REPONSE(coeff_reponse,HeureEnvoi_reponse)
QUESTIONNAIRE(id_quest,libelle_quest)
On va essayer de simplifier:
Tu as une PERSONNE qui fait parti d'un SECTEUR je suppose. Et cette PERSONNE doit donner des REPONSEs à des QUESTIONS issues d'un QUESTIONNAIRE. J'ai bon?
Je mets les clef primaires en gras souligné:
Pour la réponse en clair, je rajouterai un champ dans REPONSE.
Marsh Posté le 03-02-2009 à 15:58:40
D'accord, donc tu pars du principe ou on met dans id-reponse l'ensemble du contenu de la reponse et dans reponse_clair, on met la reponse du collaborateur, c'est bien ça?
J'ai bien compris le principe des clès primaire.
Donc en mettant la réponse complète plus la reponse de l'individu, plus besoin de table correspondance.
Par contre si je ne souhaite garder que la reponse de l'individu, je dois mettre une table de correspondance.
Jte suis ou pas?
Marsh Posté le 03-02-2009 à 16:06:38
Vu ta question, j'irais un peu plus loin qu'aspirateur au niveau de l'organisation des tables.
Si je comprends bien ce que tu pensais faire, t'as la table "Questionnaire" qui contient le nom du questionnaire, la table "QUESTION" qui contient les questions avec un identifiant de type de question (sic, souplesse réduite vu que tu n'as nulle part les éléments permettant de faire la correspondance entre le type et les réponses elle même) avec leurs réponses et la table "REPONSE" qui contient les réponses de chaque personne pour chaque formulaire.
A mon avis, il te manque des éléments dans ton modèle.
Ce que je ferais à ta place comme tables, c'est :
+
Normalement avec ça, il y aura moyen d'automatiser la plupart des traitement qu'ils te demanderont tout en gardant une souplesse importante. Par exemple avec ça, le système sera capable de gérer de lui même les questions à réponse pondéré (est ce que ceux qui passent par le premier RH sont plus content que mécontent) et les simples somme (x personne plutôt mécontente, y mitigé et z plutôt contente)
PS : Il est possible qu'il manque également quelques colonnes dans mon propre modèle, c'est à adapter en fonction des besoins.
EDIT : Je suis trop lent à répondre, vous avez déjà reposté plusieurs messages. Je vais lire ce que vous avez écrit et je modifierai mon message si besoin.
Marsh Posté le 03-02-2009 à 16:07:31
Tu as presque tout compris
Id_reponse est la clef primaire de la table REPONSE, dans ce champs sera la clef unique (un compteur par exemple).
REPONSE(id_reponse,id_question, id_personne, coeff_reponse,HeureEnvoi_reponse, reponseclair)
Voilà un exemple de ce qui sera dans la table REPONSE
REPONSE(1, 38, 5, -1, 13H15, Très mécontent)
Ainsi pas besoin de table de correspondance. Sinon en effet tu fais une table de correspondance.
Ca te parait clair?
Marsh Posté le 03-02-2009 à 16:09:00
Bon ben Omega est allé plus loin que moi en effet
EDIT: Non Omega ta réponse est très bien.
Marsh Posté le 03-02-2009 à 16:23:40
En fait, j'ai quand même fait une petite erreur dans la table "PER_QUEST_REPONSE". Il faut une colonne de type texte pour les réponses libre (nombre, ou saisie de texte) et une colonne qui correspond à l'id de la table "REPONSE" (pour les questions de type QCM)
------------------------------------------
Et à la réflexion, si on peut donner plusieurs réponses à une question donné, (QCM à choix multiple) il faut encore une table qui fait la relation entre une ligne de "PER_QUEST_REPONSE" et la table "REPONSE" et cette table remplace au passage la colonne de de la table "PER_QUEST_REPONSE" dans laquelle on indiquait l'id de "REPONSE".
Quand je disais qu'il fallait ensuite compléter/adapter en fonction des besoins.
Marsh Posté le 03-02-2009 à 16:26:57
Tout d'abord merci de vos réponses les gars
@ aspirateur: on est ok
@Omega:
Citation : QUESTIONNAIRE avec son identifiant, son libellé, sa date de début et de fin de disponibilité (quel est l'intérêt de proposer à un nouvel employé de répondre aux questionnaires d'il y a 10 ans ) |
Pour les questionnaires, un mail est envoyé à l'ensemble des collaborateurs, avec relances si besoin est, qui ont globalement 15 jours 3 semaines pour répondre, après quoi , je dois récuperer le fichier plat qui provient de lime survey( soft utilisé pour génerer le questionnaire) et automatiser certains rapports. Donc je ne gére pas la date de disponibilité. Par contre il est vrai qu'un champ contenant la date de création du questionnaire( pour celui qui le met en ligne) peut être important.
Citation : |
J'aurais dû préciser que les personnes qui répondent à ce questionnaire doivent rester anonyme, la seule chose qui identifie une personne est un id_personne (1,2...n), remise a zéro au questionnaire suivant, ce qui indiquera par la même occasion le nombre de participants au sondage.
Qu'en penses tu?
Marsh Posté le 03-02-2009 à 16:27:50
lakthar a écrit : Bonjour à tous, je suis débutant dans les bases de données & le langage SQL. |
Bon courage et n'hesite pas à venir si tu es bloqué à un moment...
Marsh Posté le 03-02-2009 à 16:32:37
Citation : |
Je te remercie, je te mp en case de besoin
Bonne journée
Marsh Posté le 03-02-2009 à 16:44:21
Post plutot sur le topic comme ca tu aura + de réponse En plus je connais pas tout
Marsh Posté le 03-02-2009 à 16:59:01
lakthar a écrit :
|
J'en penses juste que mon PERSONNE_QUESTIONNAIRE indique juste que telle personne a répondu à tel questionnaire avec éventuellement à quel moment il a répondu sans rien indiquer de plus. La liaison personne<=> réponses est stocké dans une autre table si on veut des sondages non anonyme et pour des sondages anonyme ce lien n'existe pas. Il est donc impossible de savoir ce que telle personne à répondu à telle question quand on a un sondage anonyme.
De ton côté, t'as choisit de créer un compteur. C'est bien pour savoir combien de personnes ont répondu, mais en quoi ça empêcherait quelqu'un de répondre plusieurs fois? Là, j'avoue que soit il manque une information soit il y a un lien que je n'ai pas repéré.
D'un autre côté, vu que vous utilisez un logiciel pour gérer les questionnaires, c'est le genre de chose dont tu n'as pas à te préocuper : c'est à lui de gérer ça vu que c'est lui qui reçoit les réponses. En fait, j'en viens à me demander si tout ce qu'on te demande n'était pas faisable directement dans ce logiciel. Enfin bon, c'est ni à toi ni à moi d'y répondre. En tout cas, tu seras forcément limité aux données que ce logiciel te fournis. Comme je ne le connais pas, je ne peux pas te dire si mes indications, qui étaient dans l'optique d'une gestion de A à Z des formulaires, seront valide dans ton contexte.
En tout cas, je te souhaites donne chance pour la suite.
Marsh Posté le 03-02-2009 à 17:09:14
Merci à toi omega2, l'objectif de cette mission est d'automatiser la récuperation de fichiers plats (contenant les résultas des sondages), création d'un univers ( d'ou la creation de tables) afin de faire des rapports indiquant des statistiques et des beaux graphiques
Je schématise mais jsuis pas si loin de la vérité
Dans aucune question n'est demandé le nom de l'individu, donc je n'aurais pas à le remplir.
Et comme tu dis c'est le logiciel qui gère les réponses, une personne ne peut répondre qu'une seule fois, je ne m'occupe pas de ça
Marsh Posté le 03-02-2009 à 14:54:25
Bonjour à tous, je suis débutant dans les bases de données & le langage SQL.
Je réalise actuellement un schéma conceptuel, avec des tables permettant de simuler au mieux les besoins d'une entreprise.
Il s'agit d'un sondage destiné aux collaborateurs ( 3-4 par ans) afin d'avoir des informations sur leur taux de satisfaction dans l'agence, (relais RH, ancienneté, satisfaction). Mes tables sont donc les suivantes: 5 tables, à savoir la table PERSONNE, QUESTION,SECTEUR,QUESTIONNAIRE et REPONSE. Mon problème se situe au niveau de la réponse. Je m'expliques: les questions admettent comme réponse soit "oui/non" , soit une durée (l'ancienneté par exemple), soit un coefficient(par exemple , mécontent : -1, neutre: 0 et satisfait : 1). Mais d'une question à l'autre , pour chaque coefficient correspond une chose différente( je n'aurais pas à chaque réponse le champ "mécontent" pour le coefficient -1" ) . Vous me suivez?
Ma question est donc comment faire au niveau de mes tables pour inclure ces réponses qui varient selon chaque question?!
Merci de votre rèponse, si vous avez besoin d'informations complémentaire j'y répondrais au mieux