Partage
  • Partager sur Facebook
  • Partager sur Twitter

Site Bilingue BDD

    18 décembre 2011 à 3:02:19

    Bonjour tous le monde,
    Je suis présentement entrain de faire un site web bilingue. Je voudrais pouvoir mettre tous mon texte dans une base de donnée pour pouvoir ajouter une langue si je le veux par la suite. Mon problème est surtout dans la structure de la base de donnée. J'ai pensé de faire une première table appelé PAGES qui contiendrais :

    id_page
    
    nom
    



    ensuite, j'airais une autre table appelé TEXT qui contiendrais :

    id
    
    id_page
    
    nom_champ
    
    langue
    
    texte
    



    Enfin, je ferais une jointure entre ces deux tables avec le id_page. J'ai pensé a cette structure parce que en faite aucune page à le même nombre de champ et faire une table avec des champs vide j'essaye d'éviter. Connaissez-vous une manière plus efficace, je suis près à tous changer si ça fonctionne.

    Comment faire une requête avec cette structure ?

    SELECT t.texte , t.nom_champ
    
    FROM text t
    
    INNER JOIN pages p
    
    ON p.id_page = t.id_page
    
    WHERE t.langue = 'fr' 
    
    AND p.id_page = 1
    



    et puis encore là, si jamais je veux mettre des numéro, il va me falloir une table NOMBRE

    id
    
    id_page
    
    nom_champ
    
    langue
    
    nombre
    


    Merci de bien vouloir me démêler

    Alexandcote
    • Partager sur Facebook
    • Partager sur Twitter
      19 décembre 2011 à 2:57:48

      Salut,

      C'est un problème récurrent lors de l'i18n d'un site.
      Personnellement je procède de la façon suivante.

      J'ai une table 'pages' qui contient les champs indépendants de la langue :
      id, date_creation, date_maj, visibilite...
      Ensuite j'ai une table 'pages_i18n' qui contient les champs traduisibles :
      page_id, code_lang, titre, resume, contenu...

      Et étant donné que je fais de l'objet, mon objet page est associé à un ou plusieurs objets page_i18n et je peux ainsi récupérer facilement les différentes traduction en fonction du contexte de l'utilisateur ;)

      En résumé, pour une page j'ai une ligne dans 'pages' et plusieurs lignes (une pour chaque langue) associées à 'pages' dans 'pages_i18n'.
      • Partager sur Facebook
      • Partager sur Twitter
        19 décembre 2011 à 21:32:34

        Un resourceBundle ne suffit pas dans ton cas ?
        • Partager sur Facebook
        • Partager sur Twitter

        Site Bilingue BDD

        × 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.
        • Editeur
        • Markdown