|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 5 ![]() |
Bonjour,
Je m'interroge sur le bon choix à faire quant à l'organisation d'une base de données destinées à gérer plusieurs langues. Voici les solutions qui sont à ma disposition et j'ai du mal à me décider : 1 -------------------- je fait un base avec des tables unique incluant les 2 langues (fr/gb) du type : tb_produits // c'est la table produit les champs : id_produit_lg // clé primaire auto increment valeur unique par langue id_produit // clé unique par produit mais commune a l'ensemble des langues Exemple pour les produits X , Y ça donne : (fr X) => id_produit_lg=1 ; id_produit=1 (gb X) => id_produit_lg=2 ; id_produit=1 (fr Y) => id_produit_lg=3 ; id_produit=2 (gb Y) => id_produit_lg=4 ; id_produit=2 on a donc deux clé dans la table et sur un système de table complexe les requettes ne sont-elles pas vite complexes ? 2 -------------------- je crée une table spécifique pour chaque langue : ex : tb_produit_fr tb_produit_gb et ainsi de suite pour toute les tables de la base 3 -------------------- je crée une table unique avec un id unique, mais les deux langues dans le même champ ex pour les produits X , Y ça donne : (fr gb X) => id_produit=1 ; contenu =" <fr>bonjour</fr><gb>hello</gb> " (fr gbY) => id_produit=2 ; contenu =" <fr>rouge</fr><gb>red</gb> " voilà, ce sont trois solutions et sans grande expérience du multilingue, il m'est difficile de juger des problèmes cachés , maintenance, ...... Existe-t-il une convention de creation de base multilingue, une modelisation qui répond aux utilisations les plus courantes Merci à tous, votre aide et vos commentaires sont tjs précieux. Bruno. |
|
|
00
|
|
|
#2 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 446 ![]() |
Autre possiblité, utilisée lorsqu'il y a plusieurs langues :
Table PRODUIT(id_produit, attributs produit hors libellé) Table PRODUIT_LIB(id_langue, id_produit, libellé) Cette structure a l'avantage d'être extensible si on a besoin d'ajouter une langue et d'être intégrable dans des vues complexes, intégrant le choix de la langue en fonction de l'utilisateur et la prise en charge d'une langue par défaut en cas d'absence du libellé attendu dans la langue demandée. J'ai même vu des structures du type : Table LIBELLE(id_table, id_langue, id_element, libellé) L'unique avantage est de limiter le nombre de tables de libellés. En contrepartie, il n'est plus possible d'intégrer la vérification d'intégrité référentielle dans la BD. |
|
|
00
|
|
|
#3 |
|
Inactif
Inscription : décembre 2003 Messages : 1 946 ![]() |
Les deux propositions de al1_24 sont les meilleures (et même les seules par rapport aux propositions initiales), j'ajoute deux détails :
1) dans la table produit, il faut prévoir un libellé par défaut qui permet de savoir de quoi on parle, et de suppléer l'absence de libellé dans une langue particulière. 2) l'absence d'intégrité référentielle dans la deuxième solution n'est pas très grave puisque les libellés n'ont aucune influence sur la gestion proprement dite. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 5 ![]() |
Bien dans ce cas je pense qu'il me faut m'incliner et merci pour vos conseils.
Peut-on dire que l'on a là une tb intermédiaire comme l'on pourrait la créer dans certains cas de relation plusieurs à plusieurs ? en tous cas encore merci, et si d'autres infos je suis tjs preneur car je n'est pas une longue expérience en étude et concept de base |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com