Questionnement sur une table de lien Mysql
Fermé
pinka
-
7 août 2008 à 10:18
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 7 août 2008 à 15:24
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 7 août 2008 à 15:24
A voir également:
- Questionnement sur une table de lien Mysql
- Table ascii - Guide
- Table des matières word - Guide
- Lien url - Guide
- Verifier un lien - Guide
- Créer un lien pour partager des photos - Guide
4 réponses
sandul
Messages postés
3924
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
7 août 2008 à 10:48
7 août 2008 à 10:48
Bonjour,
Mon grand questionnement, certainement ridiculement basique, est quelles données dois-je entrer dans la table communique et Langue... La table Communique ne reprenant que les clés de la table Organisme et Langue, n'a-t-elle peut-être pas besoin d'une quelconque insertion. Et pour la table Langue, dois-je rentrer autant d'occurences que j'ai d'ID_Organisme? mais alors dans ce cas j'aurai plusieurs fois le même nom de langue qui se répète, or une clé ne peut se répéter... ==>
1. Tu rentres dans la table Langue les langues dont tu as besoin (d'un point de vue applicatif)
2. Idem pour la table Organisme
3. Maintenant: si l'Organisme avec l'ID 1 est censé "travailler"/"utiliser" les langues avec les ID 4 et 5, tu rentres deux lignes dans la table de lien Communique, à savoir les couples (1,4) et (1,5).
4. Si l'organisme avec ID=2 n'a besoin d'aucune langue, tu ne rentres rien dans Communique.
5. Les tables Organisme et Langue: aucun lien entre les 2 (hormis, bien sûr, la table Communique). Du coup, "Et pour la table Langue, dois-je rentrer autant d'occurences que j'ai d'ID_Organisme?" ==> la réponse est non: tu rentres dans Langue toutes les langues qui sont utilisées par l'ensemble des organismes dans ton application, mais une seule entrée par langue donnée (le français apparaîtra une seule fois dans la table Langue).
++
Mon grand questionnement, certainement ridiculement basique, est quelles données dois-je entrer dans la table communique et Langue... La table Communique ne reprenant que les clés de la table Organisme et Langue, n'a-t-elle peut-être pas besoin d'une quelconque insertion. Et pour la table Langue, dois-je rentrer autant d'occurences que j'ai d'ID_Organisme? mais alors dans ce cas j'aurai plusieurs fois le même nom de langue qui se répète, or une clé ne peut se répéter... ==>
1. Tu rentres dans la table Langue les langues dont tu as besoin (d'un point de vue applicatif)
2. Idem pour la table Organisme
3. Maintenant: si l'Organisme avec l'ID 1 est censé "travailler"/"utiliser" les langues avec les ID 4 et 5, tu rentres deux lignes dans la table de lien Communique, à savoir les couples (1,4) et (1,5).
4. Si l'organisme avec ID=2 n'a besoin d'aucune langue, tu ne rentres rien dans Communique.
5. Les tables Organisme et Langue: aucun lien entre les 2 (hormis, bien sûr, la table Communique). Du coup, "Et pour la table Langue, dois-je rentrer autant d'occurences que j'ai d'ID_Organisme?" ==> la réponse est non: tu rentres dans Langue toutes les langues qui sont utilisées par l'ensemble des organismes dans ton application, mais une seule entrée par langue donnée (le français apparaîtra une seule fois dans la table Langue).
++
Merci beaucoup pour cette réponse claire et détaillée. Autre question, petite cette fois-ci. Lorsque j'afficherai les organismes avec leur langues respectives, il y aura énormément de répétitions. Existe-t-il une requête qui puisse afficher l'organisme et les diverses langues qu'il utilise sans répéter à chaque fois l'organisme ou bien est-ce à réaliser sous php par la suite?
Merci encore pour cette grande aide,
Merci encore pour cette grande aide,
sandul
Messages postés
3924
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
7 août 2008 à 13:28
7 août 2008 à 13:28
De rien, haureux d'avoir pu aider.
Pour répondre à ta question: "il y aura énormément de répétitions" <== oui, c'est vrai. Mais tu peux éviter l'affichage des répétitions. Exemple:
Un tableau du genre:
pourra être affiché (après filtrage) comme:
Ceci est une première solution qui ne résout pas le fait que ta requête SQL te ramène effectivement des champs inutiles dans ton contexte (et donc, du coup, elle sera moins performante par rapport à une requête sans champs inutiles).
Une autre approche serait de ne pas afficher les langues dans ta page: tu as une liste d'organismes sans plus (éventuellement avec d'autres champs de la table Organisme). Pour avoir le détail d'un organisme (par exemple les langues associées), on clique sur l'ID de l'organisme et tu affiches les langues. Cette approche, si possible applicativement, est meilleure car elle te permet d'éviter la jointure et les champs inutiles ramenés par la première approche.
++
Pour répondre à ta question: "il y aura énormément de répétitions" <== oui, c'est vrai. Mais tu peux éviter l'affichage des répétitions. Exemple:
Un tableau du genre:
id_organisme nom_organisme fonction_organisme langue_organisme 1 Nom1 Fonc1 Français 1 Nom1 Fonc1 Allemand 2 Nom2 Fonc2 Français 2 Nom2 Fonc2 Allemand 2 Nom2 Fonc2 Anglais
pourra être affiché (après filtrage) comme:
id_organisme nom_organisme fonction_organisme langue_organisme 1 Nom1 Fonc1 Français Allemand 2 Nom2 Fonc2 Français Allemand Anglais
Ceci est une première solution qui ne résout pas le fait que ta requête SQL te ramène effectivement des champs inutiles dans ton contexte (et donc, du coup, elle sera moins performante par rapport à une requête sans champs inutiles).
Une autre approche serait de ne pas afficher les langues dans ta page: tu as une liste d'organismes sans plus (éventuellement avec d'autres champs de la table Organisme). Pour avoir le détail d'un organisme (par exemple les langues associées), on clique sur l'ID de l'organisme et tu affiches les langues. Cette approche, si possible applicativement, est meilleure car elle te permet d'éviter la jointure et les champs inutiles ramenés par la première approche.
++
Merci encore pour ces précisions.
Bonne après-midi,
Bonne après-midi,
sandul
Messages postés
3924
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
7 août 2008 à 15:24
7 août 2008 à 15:24
/replace "haureux" "heureux", dans mon message précédent :-)
Merci, toi aussi.
Merci, toi aussi.