2009-02-11 9 views
1

J'écris un site Web d'enquête où les utilisateurs doivent répondre à des questions à choix multiple.Contenu multilingue sur un site Web

La conception du schéma de base de données est assez triviale dans le cas d'un langage unique, mais dès qu'il peut y en avoir plusieurs, le schéma devient plus flou.

Mon instinct me dit que je devrais les tableaux ci-dessous (avec tous les bits méchants enlevés):

questions (id)

choix (id, QuestionID)

questiontranslations (QuestionID, languagecode, le contenu)

choicetranslations (choiceid, languagecode, le contenu)

réponses

(userid, QuestionID, choiceid)

Maintenant, je sais que cela fonctionnerait, mais je ne peux pas empêcher de penser que le nombre de tables est inutilement gonfle.

Est-ce que quelqu'un a des suggestions sur les différentes façons de le faire, ou les moyens d'améliorer l'approche?

Remarque: Le nombre de langues est fixé au lancement, mais peut augmenter au fil du temps.

Répondre

1

Le schéma semble correct. Vous pouvez également utiliser une clé unique pour chaque question et chaque choix, puis avoir une table avec la clé, la valeur, les paramètres régionaux (identificateur de langue - pays). Cela réduirait vos tables de traduction de un. Cela rendrait également un système de traduction générique tel que le schéma pour les questions est séparé du schéma pour les traductions. Nous employons un schéma similaire pour un service général de traduction pour nos applications qui a une table supplémentaire pour surveiller les erreurs de traduction de sorte que si le service ne peut pas fournir une traduction dans les paramètres régionaux demandés, la clé et les paramètres régionaux sont journalisés.

+0

Approche intéressante. –

Questions connexes