Hello
je me demandais s'il existait un moyen simple de faire un "SELECT CASCADE",
grace au cles etrangeres ...
donc comme on fait un DELETE CASCADE, pouvoir choper en une requete tous les fils des fils des fils ...
Merci
Serge Hipontoise
Hello
je me demandais s'il existait un moyen simple de faire un "SELECT CASCADE",
grace au cles etrangeres ...
donc comme on fait un DELETE CASCADE, pouvoir choper en une requete tous les fils des fils des fils ...
Merci
Serge Hipontoise
Non.
Le SELECT doit être explicite. Celui qui crée la requête est censé connaître la structure de la BDD et donc les associations entre les tables qui conduisent à l'existence des clés étrangères.
Il y aurait peut-être une solution en interrogeant INFORMATION_SCHEMA mais ça sent l'usine à gaz !
Pourquoi veux-tu faire cela ? Fainéantise d'écrire des requêtes avec de multiples jointures ?
Tu peux par contre faire des vues dans la BDD et requêter ces vues dans ton programme utilisateur. Le développeur a ainsi l'impression d'interroger de simples tables alors que derrière il peut y avoir une vue comprenant plusieurs jointures entre tables. La bonne pratique de développement conseille d'ailleurs de faire ainsi pour masquer la structure de la BDD au programme utilisateur et le rendre indépendant d'éventuels changements de structure.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Merci de ta réponse !
Pour éviter justement de faire de multiples requêtes avec une récursivité
je me disais qu'une seule requête serait moins lourde
au final je me demande si faire une seule requête sur toutes mes catégories puis traiter la récursivité de qui est père et fils de qui sur un tableau des résultats dans le script php
en fait je cherche la meilleure solution, la plus légère autant pour le serveur que le client
j'ai utilisé des années MySql un peu comme ça et là j'essaie de me former justement aux bonnes pratiques les plus efficaces
je ne connais pas encore les vues
Si tu donnes la structure de tes tables, l'expression de ton besoin réel, un petit jeu de données et le résultat attendu, on pourra t'aider à trouver la bonne requête et/ou la meilleure solution.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Cat_id
Cat_name
Cat_Parent (foreign key)
sachant que toutes les categories peuvent avoir une catégorie parent ou enfant, je veux pouvoir afficher la liste complete, par exemple dans un menu deroulant de selection de la catégorie pour un article, avec l'indentation pour que ce soit clair quelle catégorie appartient à laquelle
- Félins
- Chats
- Chats de Birmanie
- Couleur du poil
- Blanc
- Tigré
- Chats de gouttière
- Lions
- Jaguar
- Canins
- Poissons
sachnat que je peux bien sur avoir a gerer un nombre infini de categories et sous catégories
Bien sur j'imagine que l'on pourrait aussi avec ajax ne faire la requête de la sous catégorie QUE si on clique dessus par exemple
Mais est-ce ça le plus léger pour le serveur ?
en imaginant bien sur que l'aie un traffic énorme et que je risque de devoir gerer enormement de connexions simultanées
Et le problème est que tu as choisi MySQL... qui ne connait pas les requêtes récursives !
Donc pas trop de solution en dehors de la récursivité faite par le programme client, ou par une procédure SQL mais pas sûr que ce soit plus facile.
Tu peux aussi t'intéresser à la modélisation d'arbre proposée par SQLPro.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Partager