PHP/Mysql : les contraintes d'une base relationnelle

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP/Mysql : les contraintes d'une base relationnelle

par iclo » 31 janv. 2006, 14:09

Comme l'a dit Albat, les jointures régleront facilement le problême.
Juste pour dire que la base de donnée semble normalisée,(ce qui est très rare :D) donc n'y change rien, elle est très bien comme ça ;)

par cmils » 31 janv. 2006, 11:13

Merci pour ces conseils.
je vais aller voir du côté des jointures, que je ne connais pas du tout !

Corinne.

par albat » 31 janv. 2006, 11:05

À moins d'avoir mal compris l'exposé de ton problème,
je pense que tout cela est faisable en une seule requête
en utilisant les jointures appropriées entre tes tables.

Tout dépend alors de la structure de tes tables.
Contiennent-elles les clés étrangères nécessaires à ces jointures ?

De manière générale, il est effectivement préférable de limiter
les allers-retours entre la page et la BD, tout en confiant à la BD
le maximum de traitements qu'elle effectuera souvent plus rapidement.

PHP/Mysql : les contraintes d'une base relationnelle

par cmils » 31 janv. 2006, 10:55

Bonjour,

je travaille actuellement à la conception d'un intranet pour ma boite, et ce sera de loin mon plus gros chantier php/mysql jusqu'ici : ça me pose des problèmes d'organisation et de méthodoloie.

Je me demandais si vous pourriez m'éclairer sur le point suivant :

Dans ma base, je gère (entre autres) des enseignants et leurs affectations dans des établissements. Il y a une table enseignants, une table établissements, une table disciplines et une table affectations, cette dernière contenant l'ID de l'enseignant, l'ID de son établissement d'affectation, l'ID de sa discipline + quelques autres infos.

Donc, si je veux afficher une liste des enseignants avec leur établissement d'affectation et la discipline qu'ils y enseignent, je dois faire un select sur la table affectations, puis :
- récupérer l'ID de l'enseignant pour aller lire son nom dans la table enseignants
- récupérer l'ID de l'établissement pour aller lire son nom dans la table établissements
- récupérer l'ID de la discipline pour aller lire son libellé dans la table disciplines.

Ma question est :
vaut-il mieux procéder comme ça, sachant que pour un enseignant on doit faire 4 SELECT, ou est-il plus économe de recopier carrément les noms de l'enseignant, de l'établissement et de la discipline dans la table affectations ?

Quelle est la priorité dans ce cas : le poids de la base de données + l'unicité de stockage des données, ou alors la simplicité du code + limitation des accès à la base ?

Merci d'avance pour vos conseils

Corinne