IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

gestion de langue dans les tables


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut gestion de langue dans les tables
    Bonjour,

    Je suis en train de créer une base pour un site qui accueillera plusieurs langues et je me demande quelle est la meilleure (plus rapide en temps de réponse) méthode a employer...

    J'ai d'abord penser faire comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TABLE `genre` (
      `ID_Genre` int(6) unsigned NOT NULL auto_increment,
      `ID_DuGenre` int(6) NOT NULL,
      `Lib_Genre` varchar(120) NOT NULL,
      `Type_Support` char(2) NOT NULL,
      `Code_Langue` char(3) NOT NULL default 'fre',
      PRIMARY KEY  (`ID_Genre`),
      KEY `Code_Langue` (`Code_Langue`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 ;
    Ainsi j'aurais le même ID_UD_Genre que j'utiliserai comme clé dans les autres table pour définir le genre quelque soit sa langue.

    L'autre méthode est celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE `genre` (
      `ID_Genre` int(6) unsigned NOT NULL auto_increment,
      `Lib_Genre_fre` varchar(120) NOT NULL,
      `Lib_Genre_eng` varchar(120) NOT NULL,
     ` Lib_Genre_ita` varchar(120) NOT NULL,
      `Type_Support` char(2) NOT NULL,
      PRIMARY KEY  (`ID_Genre`),
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1  ;
    Ainsi je rajoute une colonne de libellé par langue

    Merci de votre réponse

  2. #2
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 26
    Points
    26
    Par défaut
    Pour moi la deuxième méthode n'est pas bonne, car méttons que tu ais n langues différentes et tu devras ajouté n champs, c'est pas très évolutifs ...

    La première méthode me semble mieux, mais a mon gout, tu pourrais plutot passer par une table langue (id_langue, code_langue, lib_langue), et une table genre_langue(id_genre, id_langue, lib_genre) , et tu garde ta table genre (id_genre, type_support).

    Tu vois ??

  3. #3
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut
    Merci de ta réponse...

    Je prend note du fait que ma seconde proposition n'est pas a retenir apparemment.

    maintenant, ta proposition de faire 3 tables au lieu d'une me parrait un peu compliqué et surtout va rajouter des jointures qui pourraient être couteuses en temps de réponse...

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 26
    Points
    26
    Par défaut
    Ben faut pas utiliser mysql si tu veux eviter les jointures ....

    ma solution avec trois table te propose simplement un modèle normalisé, avec des index numériques, parceque si tu garde une seule table tu va avoir des redondances du style "fre" qui se repete autant de fois que tu as de libélé de genre en francais.
    Et puis c'est pas terrible d'indexer des champs au format texte, car c'est ca qui va te pomper des ressources ... En plus je vois que tu as un champ type_support, et je ne vois pas pourquoi cette informations là devrait apparaitre autant de fois que de langues que tu utilise pour traduire tes genres, dans la logique cela ne devrait apparaitre qu'une seule fois !!

    Et l'intérêt aussi est que tu peux avoir d'autres infos traduites , qui pourront exploiter la table langue déjà présente !!

    Bon courage !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des durées dans les tables Access
    Par climz dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 24/05/2006, 15h29
  2. Validation dans les tables
    Par Isabelle27 dans le forum Access
    Réponses: 8
    Dernier message: 02/05/2006, 15h14
  3. Gestion des NULL dans les tables externes
    Par plouf2244 dans le forum Firebird
    Réponses: 1
    Dernier message: 23/03/2006, 16h55
  4. Gestion d'erreur dans les procédure
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/01/2006, 12h02
  5. Comment voir les champs créés dans les tables?
    Par Missvan dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/02/2004, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo