我有一个小型数据库(16个实体和大约70个属性),但我无法计算其中一个表的最逻辑主键。
我有学生和近亲。一个学生可以有一个近亲,但是近亲可以成为许多学生的NOK。我认为我应该使用NOKname和NOKrelationship(与学生的关系作为复合键,但是如果例如NOK有两个孩子,他们可能是两个孩子的NOK并且是两者的父亲!
NOK
的属性:
NName
NAddress
NTelNumber
NRelationship
Student
的属性:
StudentNumber
PFirstName
PSurName
PAddress
PDOB
DateRegistered
Sex
PTelNumber
MaritalStatus
DateWaitingList
DatePlaced
ExpectedLengthStay
DateLeave
感谢您提供任何建议!
答案 0 :(得分:4)
将Id添加到NOK表并将NOKId添加到Student表。这将允许每个学生一个NOK,但NOK可以为多个学生。
答案 1 :(得分:0)
对于学生,我建议制作一个不属于这些领域的单独的密钥。
它应该是主键,整数(如果计划数百万学生,则为bigint),自动增量字段。您可以将其称为通用的,如RID(用于行标识符)。
亲属的下一个表将具有类似的主要RID。然后是一个链接表,如果有一个学生的多个亲属...如果只有一个亲属,NOK表可以有一个foriegn密钥RID到学生表RID字段。