Aller au contenu principal

Transitions

Définition

Une transition représente le chemin que doit parcourir le questionnaire dynamique à partir d'une question parent, vers une question enfant. Le chemin est exprimée par rapport à la réponse possible référencée par la réponse donnée par l'utilisateur. Une transition peut comporter une condition ou une chaîne de conditions.

Détails

Une transition est un chemin possible, que peut prendre le questionnaire lors de son exécution. On peut modéliser autant de transitions que de parcours différents. Ceci permet d'exprimer une logique de OR.

L'algorithme doit parcourir toutes les transitions possibles. Il faudra mettre en palce des règles de modélsation des questionnaires pour réduire les cycles de références circulaires ou de duplication d'arbres.

En référence au principe de reproductibilité de la génération du questionnaire, une transition ne doit jamais dépendre de son index dans la base de données. Toutes les transitions s'appliquent de manière parallèle.

Toutes les questions ayant autant d'entrées dans la table des possibleAnswers que de réponses possibles (il y a toujours des réponses possibles même pour une question ouverte), il n'est pas nécessaire de référencer la question parent. La transition part bien d'une possibleAnswer.

Une réponse possible peut avoir 0, 1 ou plusieurs transitions. Mais dans le cas de plusieurs transitions, celles-ci doivent impérativement amener à la même question suivante. Plusieurs transitions car celles-ci peuvent porter des conditions.

Une transition peut néanmoins ne pas porter de réponse possible: c'est le cas de la question initiale d'un questionnaire. La question n'est pas posée suite à une réponse mais potentiellement suite à une condition portée par la transition.

Représentation en base de données

Structure d'une transition:

  • id: (int) identifiant unique de la transition

Relations des transitions:

  • possibleAnswers: une transition est appelée par 0 ou 1 réponse possible – une réponse possible peut se retrouver 0 à N fois dans la table des transitions.
  • conditions: une transition peut appeler 0 à 1 conditions – une condition peut se retrouver 0 à N fois dans la table des transitions (une condition peut appeler une autre condition, donc l'autre condition peut ne pas être appelée directement par une transition et je ne vois pas d'inconvénient à réutiliser une condition sur plusieurs transitions)
  • questions: appelée childQuestion, il s'agit de la direction de la transition. Une transition ne peut avoir qu'1 et 1 seule question enfant – une question peut se retrouver 1 à N fois en tant que question enfant dans la table des transitions (une question initiale de questionnaire se retrouve en tant qu'enfant, donc 1, une question peut être rprésentée plusieurs fois en tant qu'enfant dans les transition: cas d'un multiple dont plusieurs propositions amènent à la même question enfant).
  • questionnaireTemplates: une transition peut se retrouver 0 à N fois en tant que transition initiale d'un modèle de questionnaire – un modèle de questionnaire ne dispose que d'1 et 1 seule transition initiale.