par
sadeq » 22 sept. 2005, 18:20
J'ai du mal à comprendre ce que tu veux avec cette formulation:
Je voudrai rechercher pour une semaine donnée, les salles qui sont libres pour une classe A et une durée de cours donné.
Si t'as besoin de connaître les salles libres t'as pas besoin de te soucier de la classe A ou autres.
La seconde chose qui pose un problème de conception est l'association de deux classes qui n'est d'autres que la présence des deux classes en même temps dans une salle pour un même cours bien sûr. Pour moi il n'y a pas association mais simplement regroupement temporaire.
D'où, pour résoudre le problème, t'as besoin d'enregistrer les infosuivantes :
* Des classes A,B,C... distinctes
* Des salles avec leurs capacités d'accueil
* Des cours mesurés par des durées associés à des profs et regroupés par classe
* Et un calendrier (des dates découpées en tranches horaires)
En fin, l'objectif est d'enregistrer le planning d'une classe (à concurence des autres) pour cela il faut enregistrer dans le cadre d'une association planning qui joint une classe, une salle, un cours et une ou plusieurs tranches d'une date (selon la durée du cours)
Pour placer un enregistrement correct dans l'association planning il faut respecter des règles comme :
1° ne pas placer 2 fois le même cours pour une classe
2° ne pas placer 2 fois la même classe dans une salle et horaire
..etc..
Exemple:
Table Planning
-----------------
A, C1, S1, 22/09/05, 08,12
B, C2, S2, 22/09/05,08,12
C, C2, S2, 22/09/05,08,12
On ne peut pas ajouter l'enregistrement "A, C1, S3, 23/09/05,08,12" car le cours C1 est déjà planifié pour la classe A
On ne peut pas ajouter l'enregistrement "A, C2, S1, 22/09/05,08,12" car la salle S1 est déjà prise par la même classe.
Ainsi de suite, les règles peuvent être vérifiées par des triggers (requêtes) avant d'autoriser un enregistrement.