1 votes

Comment modéliser cette relation dans la base de données ? (sybase powerdesigner)

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)?

1voto

Mark Points 21191

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é.

0voto

recursive Points 34729

Je modifierais votre clé primaire pour n'inclure que le bureau et l'équipe, mais j'ajouterais également une contrainte unique distincte sur le médecin et l'équipe ensemble.

0voto

Walter Mitty Points 8726

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X