Constat (1.7) :
1- seuls les articles sont multilingues
2- les articles en différentes langues ont un Id différents
3- il est possible d'avoir plusieurs traductions dans la même langue (si si)
4- on aimerait tous avoir des rubriques traduites, ainsi que les mots-clés,
les brèves...
pourquoi pas les messages, les syndics et les auteurs (pour la bio).
5- lors de la traduction d'un article, il faut resaisir les mots-clés, les
auteurs. Dans le cas d'articles scientifiques, c'est vraiment lourd. De
plus, on peut se retrouver avec des incohérences entre les différentes
langues.
Choking
Les points 2 et 3 me "choquent" particulièrement. En effet, un article est
"unique" et même si la langue change, les idées qu'il véhicule sont les même
: c'est un tout.
Dans la même logique, il ne doit y avoir qu'une seule traduction pour une
langue donnée.
Vers la solution proposée (2 étapes) :
1. (ex.: table articles) la clé primaire devient Id_article et Id_lang. On
évite ainsi les problèmes 2 et 3.
Ce principe peut aussi s'appliquer aux rubriques, brèves mots-clés...
On régle aussi le problème 5 (les auteurs, mots-clés sont saisis pour
l'article (Id), indépendemment de la langue).
Par contre, il y a un gros inconvénient : on perd l'incrémentation
automatique de l'Id
On factorise les tables existantes, ce qui allège la "lecture" de la base
existante :
En route pour l'étape 2 :
2. Abracadbra On crée une table Objet avec 2 champs : Id et Type
Id est un entier autoincrémentable.
Type contient "article", "mots-clés", "rubrique", "brève"...
Les champs Id_ de rubriques, brèves... perdent leur autoincrémentation.
On ajoute le champ lang et on modifie la clé primaire.
Là où la factorisation intervient, c'est au niveau des indexes du moteur de
recherche :
- actuellement, on a une table index_dico et "N" tables quasi identiques
index_ (une par type d'objet : articles, breves, rubriques...)
- on garde la table index_dico (en lui ajoutant un champ "lang" ?), et une
seule table index_objet avec les champs suivants :
- hash
- points
- id
Voilà
Je vois un problème pour auteur car il faut resaisir le nom, mais il peut
être différent suivant la langue :
Mao Tsé Toung (fr),
Ben Laden (fr); Bin Laden (en)
Quand pensez-vous ?
Amicalement,
Yves