Comment créer des arborescences en SQL dans une base de données
Fermé
Bapt1990
-
Modifié par Bapt1990 le 9/03/2015 à 10:20
mamiemando Messages postés 33030 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 mars 2024 - 11 mars 2015 à 10:49
mamiemando Messages postés 33030 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 mars 2024 - 11 mars 2015 à 10:49
A voir également:
- Comment créer des arborescences en SQL dans une base de données
- Comment créer un groupe whatsapp - Guide
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Créer une liste déroulante excel - Guide
- Créer une adresse hotmail - Guide
1 réponse
mamiemando
Messages postés
33030
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 mars 2024
7 736
Modifié par mamiemando le 11/03/2015 à 10:52
Modifié par mamiemando le 11/03/2015 à 10:52
Tu peux tout à fait définir les tables en question, par contre il faudra au niveau de la requête SQL préciser quelles jointures tu souhaites utiliser.
De manière une jointure est "chère" donc si tes tables sont très grosses il faut éviter de faire trop de jointures, sinon ce sera lent.
Ensuite ce que tu peux faire pour mettre plusieurs tables en relation au travers de jointures sans impacter lesdites tables et sans dupliquer les données c'est de créer une vue (
Normalement ton SGBD supprimera automatiquement du query plan les tables impliquées dans ta vue et qui ne sont pas nécessaires pour répondre à ta requête. Tu peux vérifier en précédant ta requête du mot clé
En tout cas un SQBD classique (mysql, postgresql) ne prendra jamais l'initiative de choisir quels
Bonne chance
De manière une jointure est "chère" donc si tes tables sont très grosses il faut éviter de faire trop de jointures, sinon ce sera lent.
Ensuite ce que tu peux faire pour mettre plusieurs tables en relation au travers de jointures sans impacter lesdites tables et sans dupliquer les données c'est de créer une vue (
CREATE VIEW) qui indiquera la chaîne de
JOINà déclencher. Il est alors possible de formuler une requête qui au lieu de consulter une table (clause
FROM) fera la requête sur cette vue.
Normalement ton SGBD supprimera automatiquement du query plan les tables impliquées dans ta vue et qui ne sont pas nécessaires pour répondre à ta requête. Tu peux vérifier en précédant ta requête du mot clé
EXPLAINafin de voir ce qui est réellement déclenché.
En tout cas un SQBD classique (mysql, postgresql) ne prendra jamais l'initiative de choisir quels
JOINfaire pour toi (ne serait-ce que parce qu'il existe plusieurs opérateurs de jointure (
LEFT JOIN,
NATURAL JOIN...), et potentiellement plusieurs chemins de jointure dans ton schéma de base.
Bonne chance