2009-09-23 72 views
1
 
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)? 
+0

您將使用哪個數據庫?它可能會改變你如何處理這個問題。 – 2009-09-23 16:53:58

+0

此外,辦公時間表與OFFICE的1:M(或M:M)關係如何? 如果它是1:1的關係,那麼OFFICE SCHEDULE應該是OFFICE表的一部分 – 2009-09-23 17:00:52

+0

MS SQL 當我需要將多對多關係(醫生辦公室)分隔到一個單獨的表中時,我有點困惑,但我認爲它的辦公室時間表應該是1:M – 2009-09-23 17:11:04

回答

0

OFFICE SCHEDULE的主鍵應該是(id_office,id_shift)。 id_doctor應該在表中,但不是主鍵的一部分。這將強制執行規定,在給定辦公室的情況下,如果發生輪班,該辦公室最多隻能有一名醫生。

當然,除了構成主鍵的兩個外,這三個都是外鍵。

+0

上但那麼醫生可以在兩個辦公室進行同一輪班。辦公室日程表需要兩個唯一的限制 – Mark 2009-09-24 08:49:54

1

這個鍵(id_doctor,id_office,id_shift)將允許醫生在一個班次在許多辦公室工作。嘗試一下醫生和輪班辦公室作爲一個相關領域的關鍵。但是,這可以讓辦公室在輪班時有多位醫生,我不確定是否允許這樣做。

+0

在一個班次中,只有一名醫生可以在一個辦公室工作 – 2009-09-23 17:05:08

+0

好吧,您需要另一個唯一密鑰id_office,id_shift在同一個表 – Mark 2009-09-23 18:05:15

0

我會改變你的主鍵只包括辦公室和班次,但也增加了一個單獨的獨特的約束對醫生和轉移在一起。

相關問題