Une recherche sur plusieurs table similaire

Eléphanteau du PHP | 35 Messages

19 nov. 2007, 11:56

Bonjour,

Je ne suis pas très familliarisé avec les jointures et c'est pour moi un véritable casse tête qui, pour certain d'entre vous, sera un vrai jeux d'enfant.

Voilà j'ai plusieurs tables similaires dans lesquels il y a des noms de recettes de cuisine

voici 3 tables :
----------------
table_entrees
table_plats
table_desserts

et leur structure est parfaitement identique

id | id_utilisateur | titre recette

Moi, ce que je souhaite faire c'est joindre toutes les tables en une seule pour pouvoir lancer une recherche sur l'ensemble des données

ex : Afficher toutes les entrées, plats et dessert de d'un seul id_utilisateur

Merci pour votre aide

d0m
Mammouth du PHP | 1141 Messages

19 nov. 2007, 12:05

Si tu peux encore changer tes tables, autant en faire qu'une seule avec un champ en plus : type
qui sera par exemple 0 pour les entrées,1 pour les plats et 2 pour le desserts.

Ca te permettra de faire des recherches plus pratiques si tu veux les recettes des utilisateurs sans te soucier du type de recette.

Code : Tout sélectionner

//pour les recettes d'un utilisateur SELECT id,titre_recette,type FROM recettes WHERE id_utilisateur = ... //pour les recette d'un certain type seulement SELECT id,titre_recette FROM recettes WHERE type = ...
Modifié en dernier par d0m le 19 nov. 2007, 12:08, modifié 1 fois.

Eléphanteau du PHP | 35 Messages

19 nov. 2007, 12:07

Si tu peux encore changer tes tables, autant en faire qu'une seule avec un champ en plus : type
qui sera par exemple 0 pour les entrées,1 pour les plats et 2 pour le desserts.

Ca te permettra de faire des recherches plus pratiques si tu veux les recettes des utilisateurs sans te soucier du type de recette.
Oui c'est comme ça qu'est ma table à l'origine malheureusement pour des problème de poids je dois la dispaché en plusieurs table

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

19 nov. 2007, 12:39

Un problème de poids ? C'est très étonnant, MySQL gère sans problèmes des tables de plusieurs dizaines de millions d'enregistrements sans réglages particuliers. Donc soit ton livre de cuisine est vraiment très impressionnant, soit tu as un autre problème.

Pourrais-tu élaborer sur ce "problème de poids" stp ?

Eléphanteau du PHP | 35 Messages

19 nov. 2007, 12:44

et bien la table va contenir des champs texte avec des recette à l'interrieurs, donc j'ai peur que les requête s'allourdisent surtout si la table arrive à +500Mo de données et que j'y lance une recherche de type LIKE %xxx%

Mais si tu me dis que MySql gère facilement ce poids, alors je me creuse la cervellement inutilement depuis 2-3h lol

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

19 nov. 2007, 12:55

Peu importe que ce soit en 1 table ou en 3, si tu lances un LIKE %xxx% sur 500 Mo de données alors oui, tu vas ramer, mais c'est pour ça que la recherche en texte intégral existe.

En même temps, je doute que tu parviennes à 500 Mo de données. À titre d'exemple, les 216 700 messages de PHPFrance pèsent au total 127 Mo.

Utilise la recherche Fulltext et tout ira bien.

Eléphanteau du PHP | 35 Messages

19 nov. 2007, 13:30

Peu importe que ce soit en 1 table ou en 3, si tu lances un LIKE %xxx% sur 500 Mo de données alors oui, tu vas ramer, mais c'est pour ça que la recherche en texte intégral existe.

En même temps, je doute que tu parviennes à 500 Mo de données. À titre d'exemple, les 216 700 messages de PHPFrance pèsent au total 127 Mo.

Utilise la recherche Fulltext et tout ira bien.
Ok merci du toyau je vais voir ça immédiatement, je crois que mon pb est donc résolu.