我有一个有药物提醒和药物提醒的数据库有不同的时间表,这些时间表(每天两次)有不同的提醒事件(提醒来自的日期)所以所有人都有一对多的关系。
|----SCHEDULE1 ----|----OCCURRENCE1
|----SCHEDULE1 ----|----OCCURRENCE2
MEDICATION_REMINDER --- |----SCHEDULE2 ----|----OCCURRENCE1
|----SCHEDULE2 ----|----OCCURRENCE2
现在我可以存储这些值,如
MEDICATION_REMINDER(MEDICATION_REMINDER_ID,OTHER_DETAILS)
SCHEDULE(MEDICATION_REMINDER_ID_FK,SCHEDULE_ID,TIMES)// PK是MEDICATION_REMINDER_ID_FK,SCHEDULE_ID
OCCURRENCE(SCHEDULE_ID_FK,OCCURRENCE_ID,DATE_TIME)//现在没有主要关键
现在不能唯一地识别出现 例如
M1和M2有两个时间表S1(上午7:00)和S2(下午8:00),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
__________________
如何唯一地标识出现表行。最好将MEDICATION_REMINDER_ID存储在OCCURRENCE表中。我不想那样做因为OCCURRENCE表和MEDICATION_REMINDER 没有直接的关系。请帮帮我 提前谢谢
答案 0 :(得分:0)
虽然MEDICATION_REMINDER和OCCURRENCE没有直接关系,但OCCURRENCE与SCHEDULE有直接关系。 SCHEDULE的主键是MEDICATION_REMINDER_ID,SCHEDULE_ID,因此要建立SCHEDULE和OCCURRENCE之间的关系,需要在两个表之间建立外键关系。这意味着SCHEDULE的主键必须在OCCURRENCE中显示,因此MEDICATION_REMINDER_ID需要包含在OCCURRENCE中。这也提供了唯一标识OCCURRENCE实例的方法。