Je me tourne vers vous, car je me pose des questions sur la meilleure solution afin de modéliser un QCM multilingue.
Ce que je cherche à faire c'est donc un QCM multilingue. Au cours de ce QCM, chaque mauvaise réponse sera enregistré.
Dans un QCM dans une seule langue, voici comment j'aurais procédé (la table niveau correspond ici à un thème) :
Le problème survient quand je tente d'intégrer l'internationalisation de mon QCM. Idéalement, il ne faudrait pas dupliquer la table "log". Que faire ? Créer une seconde base de données ? Dupliquer toutes les tables sauf "log" en ajoutant un préfixe "fr", "en", etc... sur les noms de tables et ajouter un champs "réponse_id_fr", etc... qui peut être NULL dans la table "log" ?
Pour moi la meilleure solution serait juste d'ajouter un champs "langue" dans les tables "niveau", "question" et "réponse", mais je ne suis pas certain de la logique de modélisation. En effet, je ne sais pas si c'est très propre d'avoir plusieurs langues différentes pour finalement faire la même chose dans les tables de ma base de données.
Bref, si quelqu'un peut me conseiller, je suis preneur !
Si tes questions sont toutes les mêmes dans toutes les langues, sont toutes traduites (et que la bonne réponse est la même dans chaque langue) : pour chaque table qui a besoin d'une traduction, ajoute une table de traduction.
Tu devrais appeler clés primaires de tes tables "table_id" au lieu de juste "id", c'est plus clair et pratique.
Sinon, c'est l'idée, mais les colonnes "nom" et "texte" doivent gicler des tables non traduites, puisqu'elles sont déplacées dans les tables de traduction.
Quand à la table log, il faudrait enregistrer l'id du mec qui répond aux questions et un id de session (une session étant un remplissage de qcm par un type)
Merci beaucoup, effectivement, j'avais mal interprété ton premier message concernant les tables pour la traduction.
En ce qui concerne la table log, pas besoin d'identifiant pour le mec ou la session. Cette base de données n'est pas pour un site internet, mais pour un application locale. Par conséquente, la base de données est locale.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mon site - Mon livre sur le XML - Mon blog
Mon site - Mon livre sur le XML - Mon blog
Mon site - Mon livre sur le XML - Mon blog