|
Bas de page | |
---|---|
Auteur | Sujet : Probleme de listing alphabétique et LIMIT avec jointures 1:n |
Publicité | Posté le 23-12-2004 à 22:07:04 |
Beegee | Tu dois pouvoir le faire dans une requête je pense ...
Message édité par Beegee le 23-12-2004 à 23:01:45 |
Galak_ | bah non justement, la ca fait faire un select * justement, et la table étant destinée a avoir plus de 20000 entrées, je te dis pas le cout... le but est de sortir juste le nombre d'éléments à afficher, et surtout, ce qui est dur, le tri alphabétique |
Beegee | De toute façon, si tu as un tri à faire, en interne, mySql va se taper les 20.000 lignes, donc je vois pas ce que tu veux améliorer.
Message édité par Beegee le 24-12-2004 à 07:27:14 |
Galak_ | tu ne sembles pas comprendre le fait que faire un select * sur une telle table est une abération. Pour la fonction de tri, en ayant un index sur la colonne à trier ca ne repasse pas tout, en tout cas c'est bien moins lent qu'un select *
|
Beegee |
|
Galak_ | oh bah c'est simple hein, à la saisie d'un jeu je prend l'ordre de priorité des titres pour un affichage en anglais (us, all, en, jp, eu, fr...) par exemple, et pour un affichage en francais (fr, eu, all, en, us, jp... enfin à définir), et je met le premier qui est défini dans la colonne correspondante. Idem lors de l'ajout ou la modif d'un titre. Le probleme de cette méthode, outre l'alourdissement d'une table, est l'obligation de rajouter 2 colonnes si je décide de faire un listing préci aussi puor l'allemand et l'espagnol (ce serait bien d'avoir ca aussi pour l'allemand, car bcp de joueurs allemands, et bcp de titres localisés), ce qui alourdi d'autant la base.
|
Beegee | C'est pour ça que je te dis de faire un petit script PHP tout simple qui va te créer comme un grand une table jeu_listing__fr_t qui contiendra par exemple jeu_id et jeu_nom (en fr, us, etc. suivant la priorité). Ca te permet de ne pas dupliquer les infos au moment où tu mets à jour les jeux (c'est le script qui le fait ensuite). |
Galak_ | bah, tu voulais que je le fasse comment... je vais pas faire tous les test directement en SQL hein
|
Beegee | C'est toi qui vois, mais je te conseille de charger les données de listings par un script, histoire de ne pas avoir à te rappeler quoi faire à chaque fois que tu crées un nouveau jeu ou que tu remplis un nouveau nom. |
Publicité | Posté le 24-12-2004 à 11:44:08 |
Galak_ | bah, le site est en php, donc ce que tu dis n'a pas vraiment de sens, ce sera forcément géré en php... apres tu veux peut etre dire "faire un fonction" au lieu de "faire un script", qu'on appelle sur chaque fois, mais bon ca c'est une évidence
Message édité par Galak_ le 24-12-2004 à 12:00:11 |
Beegee | Ouaip, on va pas jouer sur les mots, en gros il te faut une petite partie administration du site, dans laquelle en cliquant sur un lien, ça appelle un script php qui génère les infos de listings.
|
Galak_ | visiblement tu captes pas du tout le truc, pour la lecture suffit de faire un join sur l'id du jeu, pas besoin de chercher plus loin, et limit et order peuvent etre utilisés, et pour la maj ce sera une cuisine interne qui se basera aussi, en premier lieu, sur l'id du jeu, de facon a retourner autant de lignes pour un jeu donné qu'il y a de noms pour ce jeu. a partir de la une simple boucle retournera tous les noms saisis pour ce jeu.
|
Beegee | J'abandonne
|
Galak_ | bah tes solutions necessitent chaque fois un select sur toute la table, et ne sont pas applicables avec tri ou limite, ou alors se rapportent ah la saisie, qui elle ne pose aucun probleme, seul le listing par page et par ordre alphabétique avec une requete ne repportant que le nombre voulu de lignes pose probleme.
|
Beegee | J'ai uniquement apporté des idées concernant le remplissage des infos de listings (qui peuvent être comme tu le disais des champs supplémentaires dans la table jeu_t), le reste étant évident : une fois ces infos remplies, il suffit de faire :
|
Galak_ | ouioui mais sur ce point on est d'accord, soit 1 colonne pour chaque listing (cad pour chaque langue) dans la table t_jeu, soit une table t_listing comportant ces champs et l'id de la ligne de t_jeu correspondante. Je cherche juste à savoir si il n'y a pas moyen de se passer des ces colonnes de listing qui alourdissent pas mal la base |
Sujets relatifs | |
---|---|
problème de formulaire qui enregistre rien -> 2è problème :( | help: probleme de fonction .h en C |
requete sql probleme avec accent é | problème d'inclusion des header MFC |
Probleme Argument mysql_num_rows | [QT] affichage de fenêtre et problème de classe |
Probleme CSS/XHTML. | modification d'une table [PROBLEME] |
Problème de script PHP MySQL | Probleme: Glob() et la sentivite de la casse |
Plus de sujets relatifs à : Probleme de listing alphabétique et LIMIT avec jointures 1:n |