Page 1 sur 1
Une recherche sur plusieurs table similaire
Posté : 19 nov. 2007, 11:56
par Payfu
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
Posté : 19 nov. 2007, 12:05
par d0m
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 = ...
Posté : 19 nov. 2007, 12:07
par Payfu
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
Posté : 19 nov. 2007, 12:39
par Hubert Roksor
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 ?
Posté : 19 nov. 2007, 12:44
par Payfu
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
Posté : 19 nov. 2007, 12:55
par Hubert Roksor
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.
Posté : 19 nov. 2007, 13:30
par Payfu
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.