Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Une Bdd mysql par langue

Aller à la page 1, 2, 3  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Référencement de sites multilingues   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
jerome72
Nouveau WRInaute

Inscrit le: 08 Oct 2004
Messages: 20

URL permanente de ce messagePosté le : Mar Oct 10, 2006 19:22    Sujet du message: Une Bdd mysql par langue

Bonjour,

Je suis entrain de créer un site traduit en francais, anglais et italien.
Pour gérer ces trois langues, j'ai créé une base de données par langue, chacune des trois bases ayant la meme structure. J'utilise des variables de session pour identifier la langue en cours.

Je voudrais savoir si ma méthode est bonne : cela peut-il poser des problèmes d'avoir sur le même site des connexions à plusieurs bases de données, en termes de ressources / performances ?

Merci d'avance
Jerome
 
jerome72 Visiter le site web du posteur
finstreet
WRInaute accro
WRInaute accro

Inscrit le: 10 Juil 2005
Messages: 9400

URL permanente de ce messagePosté le : Mar Oct 10, 2006 19:29    Sujet du message: Une Bdd mysql par langue

pourquoi tu ne rajoutes pas juste un champ Langue pour les tables où il y a du contenu ?
 
finstreet
kazhar
WRInaute accro
WRInaute accro

Inscrit le: 09 Jan 2004
Messages: 6040
Localisation: Somewhere only I know

URL permanente de ce messagePosté le : Mar Oct 10, 2006 19:38    Sujet du message: Une Bdd mysql par langue

Multiplier les bases de données est très lourd.
Comme le dit finstreet, une seule db avec un champ "langue" serait beaucoup plus adapté.
 
kazhar Visiter le site web du posteur
jerome72
Nouveau WRInaute

Inscrit le: 08 Oct 2004
Messages: 20

URL permanente de ce messagePosté le : Mar Oct 10, 2006 19:49    Sujet du message: Une Bdd mysql par langue

Merci pour vos réponses!

Pourquoi est-ce plus lourd de multiplier les bases ?
 
jerome72 Visiter le site web du posteur
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12159
Localisation: Toulouse

URL permanente de ce messagePosté le : Mer Oct 11, 2006 9:40    Sujet du message: Une Bdd mysql par langue

ou gere ca en tables :

fr_table1
fr_table2
fr_table3

en_table1
en_table2
en_table3

...
 
e-kiwi Visiter le site web du posteur
jerome72
Nouveau WRInaute

Inscrit le: 08 Oct 2004
Messages: 20

URL permanente de ce messagePosté le : Mer Oct 11, 2006 10:20    Sujet du message: Une Bdd mysql par langue

Bonjour,

Je suis d'accord sur le principe de créer une table par langue.

Mais je souhaite vraiment savoir en quoi il est déconseillé de gérer cela dans plusieurs bases. Cela peut-il poser des problemes en termes de ressources ou de performances, et si oui pour quelle raison?

Merci d'avance
 
jerome72 Visiter le site web du posteur
dadovb
WRInaute accro
WRInaute accro

Inscrit le: 22 Nov 2005
Messages: 1270

URL permanente de ce messagePosté le : Mer Oct 11, 2006 10:37    Sujet du message: Une Bdd mysql par langue

Si ton utilisateur change de langue, il va falloir que tu te déconnecte d'une database, pour te connecter à une autre, et ainsi de suite à chaque changement de langue.

C'est beaucoup plus léger en termes de ressources de changer de table que de base.

Tu peux même ne pas avoir à changer de table mais juste de champ, exemple :

Table : news
Attributs : id, Date, texte_fr, texte_en, texte_ita, etc....

Comme ca tu gère simplement l'affichage de la bonne langue comme ca :
Code:

"SELECT date, texte_$lang FROM news;"
 
dadovb Visiter le site web du posteur
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12159
Localisation: Toulouse

URL permanente de ce messagePosté le : Mer Oct 11, 2006 10:46    Sujet du message: Une Bdd mysql par langue

>> Si ton utilisateur change de langue, il va falloir que tu te
>> déconnecte d'une database, pour te connecter à une
>> autre, et ainsi de suite à chaque changement de langue.

je ne comprend pas, a chaque requete on se connecte à la base, donc en quoi cela est-il génant de se conencter à des bases differentes à chaque requete ?
 
e-kiwi Visiter le site web du posteur
kazhar
WRInaute accro
WRInaute accro

Inscrit le: 09 Jan 2004
Messages: 6040
Localisation: Somewhere only I know

URL permanente de ce messagePosté le : Mer Oct 11, 2006 10:52    Sujet du message: Une Bdd mysql par langue

Pas daccord. Il est plus optimisé de se connecter une seule fois. ça évite des multiples transferts inutiles de données (et maintiens un socket activé plus longtemps, mais à moins que tu n'ait un sleep() qui dire une minute, c'est dérisoire)

Par contre, la raison de dadovb n'est pas correcte dans le sens ou en changeant de langue, tu recharge la page. Et là, de toute façon, tu te reconnecte.

De mon point de vue, il vaut mieux faire des champs "langue" sur une seule dbcar lorsque tu fait une modification dans ta db ou ton code, elle est répercutée partout. tu n'a pas de problèmes d'erreur suite à un oubli d'ajout d'un champ dans une autre langue.

Et d'un point de vue mémoire, il vaut mieux n'avoir qu'un seul gros fichier que plein de petits (ca permet plus difficilement de s'y retrouver lorsque c'est textuel. mais là, ca ne l'est pas. c'est une db)
 
kazhar Visiter le site web du posteur
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12159
Localisation: Toulouse

URL permanente de ce messagePosté le : Mer Oct 11, 2006 10:54    Sujet du message: Une Bdd mysql par langue

pas daccord, tu multiplie les chances d'avoir du max_user_connection en gardant ta BDD ouverte durant toute l'execution du script, le conseil d'ouvrir et fermer la connexion à chaque requete vient de mon hebergeur qui lui préconise àa
 
e-kiwi Visiter le site web du posteur
jerome72
Nouveau WRInaute

Inscrit le: 08 Oct 2004
Messages: 20

URL permanente de ce messagePosté le : Mer Oct 11, 2006 10:55    Sujet du message: Une Bdd mysql par langue

dadovb a écrit:
Si ton utilisateur change de langue, il va falloir que tu te déconnecte d'une database, pour te connecter à une autre, et ainsi de suite à chaque changement de langue.


C'est effectivement le cas, mais je ne comprend pas bien pourquoi c'est plus lourd en termes de ressources, ou alors j'ai du mal coder ma connexion aux bases.

J'ai un fichier connexion.php, header.php et index.php
Le header.php (qui contient l'entete de la page HTMl) fait un include("connexion.php").
Le connexion.php crée la connexion et la selection de la base.
A chaque rafraichissement de page, et a chaque fois que l'on clique sur un lien, le header.php est appelé, qui appelle lui-même le connexion.php
Alors, qu'il n'y ait qu'une seule base ou plusieurs, j'ai du mal a saisir quelle différence il y a puisque même avec une seule base il y a a chaque fois une nouvelle connexion. Pour résumer, meme si on est connecté à la base, dés qu'on clique un lien, on s'y reconnecte de suite...
Peut etre que ma méthode de connexion exprimée ci-dessus est mauvaise ??
 
jerome72 Visiter le site web du posteur
rog
WRInaute accro
WRInaute accro

Inscrit le: 21 Sep 2006
Messages: 1662
Localisation: sapucaia do sul (RS)

URL permanente de ce messagePosté le : Mer Oct 11, 2006 10:58    Sujet du message: Une Bdd mysql par langue

moi j'aime bien le système en multi base

si chaque base contient l'intégralité des données pour une langue et qu'il n'ya pas besoin de se connecter à une autre pour rechercher des infos

il n'y a que des avantages :

1 le changement de langue se fait juste par le changement de config d'acces à la base

2 ça permet de cloisonner les modifs par traducteur

rog
 
rog Visiter le site web du posteur
kazhar
WRInaute accro
WRInaute accro

Inscrit le: 09 Jan 2004
Messages: 6040
Localisation: Somewhere only I know

URL permanente de ce messagePosté le : Mer Oct 11, 2006 10:59    Sujet du message: Une Bdd mysql par langue

[quote="e-kiwi]pas daccord, tu multiplie les chances d'avoir du max_user_connection en gardant ta BDD ouverte durant toute l'execution du script, le conseil d'ouvrir et fermer la connexion à chaque requete vient de mon hebergeur qui lui préconise àa[/quote]
Et ta solution est plus consommatrice en ressources vu que tu déconnecte et reconnecte un socket à chaque requete. Chacune a ses avantages & inconvénients. Mais excepté en mutualisé ovh, les problèmes de max_user_connection n'arrivent jamais (tous mes sites fonctionne comme cela par ailleurs)
 
kazhar Visiter le site web du posteur
dadovb
WRInaute accro
WRInaute accro

Inscrit le: 22 Nov 2005
Messages: 1270

URL permanente de ce messagePosté le : Mer Oct 11, 2006 10:59    Sujet du message: Une Bdd mysql par langue

jerome72 a écrit:
Pour résumer, meme si on est connecté à la base, dés qu'on clique un lien, on s'y reconnecte de suite...
Peut etre que ma méthode de connexion exprimée ci-dessus est mauvaise ??


Tu ne referme pas tes connexions, une fois ta requete traitée ?

Sinon, comme a dit, je sais plus qui juste au-dessus, le principal désavantage de plusieurs databases, ca va etre quand tu vas faire des modifs : rajouter / supprimer des champs, il faudra le faire dans chaque database.
 
dadovb Visiter le site web du posteur
dadovb
WRInaute accro
WRInaute accro

Inscrit le: 22 Nov 2005
Messages: 1270

URL permanente de ce messagePosté le : Mer Oct 11, 2006 11:00    Sujet du message: Une Bdd mysql par langue

kazhar a écrit:

Par contre, la raison de dadovb n'est pas correcte dans le sens ou en changeant de langue, tu recharge la page. Et là, de toute façon, tu te reconnecte.


Effectivement, il est temps que j'arrete de dire des conner*es, je vais me recoucher.
 
dadovb Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Référencement de sites multilingues Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 3 - Aller à la page 1, 2, 3  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort