par
albat » 24 avr. 2005, 10:19
Bonjour,
Après tous ces posts, j'avoue avoir un peu perdu le fil de la question initiale.
Quel est ton but ?
Remplir une table avec toutes les combinaisons possibles de repas ?
Si c'est bien cela (quoique l'intérêt ne me saute pas aux yeux), la solution est toute simple :
LE PRODUIT CARTÉSIEN.
J'en vois ouvrir de grands yeux, frémir et hurler : "
Vade retro !"
Oui, le produit cartésien est plus une erreur et un danger
(celui de faire tomber le serveur de BD) qu'un outil !
Mais il a parfois un petit côté utilitaire :
celui de permettre de lister (pour ensuite remplir une table ou non)
TOUTES les combinaisons possibles d'une série d'éléments.
Ainsi, si tu as 10 entrée, 11 plats et 12 desserts,
il te génèrera les 10*11*12 = 1 320 combinaisons possibles.
Le tout en une seule requête.
Pourquoi est-ce dangereux ?
Parce que si tu rajoutes 5 sortes de pain, 8 vins, 25 boissons,...
(ce qui n'a rien d'extravagant pour un resto)
tu passeras à 10*11*12*5*8*25 = 1 320 000 combinaisons !
Ça va très vite !
Comment fait-on un produit cartésien ?
Ben ça, je te l'expliquerai si c'est vraiment ce que tu souhaites faire...
Mais attention de bien chiffrer le volume de données manipulées puis restituées.
Le produit cartésien est la principale cause de plantage de serveurs de données.
À utiliser avec ultra-modération, donc !
