2013-04-17 65 views
0

我有服藥提醒和服藥提醒有不同的時間表和這些時間表(每天兩次)有不同的提醒事件(上提示來完成日期)數據庫,以便都有一對多關係。如何唯一標識規範一對多的關係

     |----SCHEDULE1 ----|----OCCURRENCE1 

         |----SCHEDULE1 ----|----OCCURRENCE2 

MEDICATION_REMINDER --- |----SCHEDULE2 ----|----OCCURRENCE1 

         |----SCHEDULE2 ----|----OCCURRENCE2 

現在我可以存儲像

MEDICATION_REMINDER這些值(MEDICATION_REMINDER_ID,OTHER_DETAILS)

附表(MEDICATION_REMINDER_ID_FK,SCHEDULE_ID,TIMES)// PK是MEDICATION_REMINDER_ID_FK,SCHEDULE_ID

OCCURRENCE(SCHEDULE_ID_FK ,OCCURRENCE_ID,DATE_TIME)// NO PRIMARY KEY截至目前

立即發生不能是我唯一 dentified爲如

M1和M2有兩個時間表S1(7:00 AM)和S2(8:00 PM)和S1有三個 出現說O1,O2,O3和S2也有三個事件說O1 ,O2,O3

現在我的表是

MEDICATION_REMINDER 
_____________________ 
M1 
M2 
_____________________ 

SCHEDULE 
__________________ 
M1 S1 7:00AM 
M1 S2 8:00PM 
M2 S1 7:00AM 
M2 S2 8:00PM 
__________________ 


OCCURRENCE 
__________________ 
S1 O1 21-04-13 7:00AM 
S1 O2 22-04-13 7:00AM 
S1 O3 23-04-13 7:00AM 
S2 O1 21-04-13 9:00PM 
S2 O2 22-04-13 9:00PM 
S2 O3 23-04-13 9:00PM 

S1 O1 21-04-13 7:00AM 
S1 O2 22-04-13 7:00AM 
S1 O3 23-04-13 7:00AM 
S2 O1 21-04-13 9:00PM 
S2 O2 22-04-13 9:00PM 
S2 O3 23-04-13 9:00PM 

__________________ 

如何唯一標識發生表rows.Is其良好的存儲MEDICATION_REMINDER_ID中賦存表。我不想這樣做,因爲賦存表和MEDICATION_REMINDER 沒有直接relationship.Please幫我 在此先感謝

回答

0

雖然MEDICATION_REMINDER和發生沒有直接的關係,發生與SCHEDULE有直接的關係。附表的主鍵是MEDICATION_REMINDER_ID,SCHEDULE_ID,所以要建立調度和發生之間的關係,你需要有兩個表之間的外鍵關係。這意味着SCHEDULE的主鍵具有發生時要示出,所以MEDICATION_REMINDER_ID需要被包括在發生。這也提供了手段來唯一地標識發生的實例。