I'm doing a conceptual model in Sybase PowerDesigner.
The restriction is following:
One doctor can work in only one office at a time during his working time (shift).
I guess Doctor - Office relationship should be many-many, but what about
time restriction ("during his working time")?
Should it be a new table SHIFT?
So I guess I should have four tables (DOCTOR, OFFICE, SHIFT and OFFICE SCHEDULE).
OFFICE SCHEDULE should be a table connecting all 3 other entities
and should have composite primary key (id\_doctor, id\_office, id\_shift)?
Réponses
Trop de publicités?Cette clé (id_doctor, id_office, id_shift) permettrait à un médecin de travailler dans plusieurs bureaux au cours d'une même période de travail. Essayez de créer une clé pour cette table avec médecin et équipe - le bureau étant un champ dépendant. Cependant, cela permettrait à un bureau d'avoir plusieurs médecins dans une équipe et je ne suis pas certain que cela soit autorisé.
La clé primaire de OFFICE SCHEDULE doit être (id_office, id_shift). id_doctor doit figurer dans la table, mais ne pas faire partie de la clé primaire. Cela permettra d'appliquer la règle selon laquelle, pour un bureau donné et une équipe donnée, il ne peut y avoir qu'un seul médecin dans ce bureau.
Bien entendu, ces trois éléments sont des clés étrangères qui s'ajoutent aux deux clés primaires.