我创建了一个称为表STUDENT其中包括唯一ID与像其他相关属性沿PRIMARY KEY Name,Addr,Gender等....
由于我不想增加表的大小STUDENT,我创建了一个弱实体ACADEMIC RECORDS,用于存储学生以前的学术记录.但是在这个表中我只创建了一个Unique ID引用Unique ID学生的PRIMARY KEY .并且Unique ID在弱实体ACADEMIC RECORD表中没有其他属性.
当我遇到一个弱的实体的定义时,它将其主键定义为弱实体的属性和所有者的表的主键(在这种情况下STUDENT)的组合
我的方法是创建外键作为表中唯一的主键ACADEMIC RECORD吗?
STUDENT Table
**UID** NAME GENDER ADDRESS PHNO.
ACADEMIC RECORD Table
**UID** HighschoolMarks GradSchoolMarks
Run Code Online (Sandbox Code Playgroud)
拥有一个完全是外键的主键也没有什么不妥.这是实现类似"基类"的常用方法,其中实体在基表中有一行,并且可能在一个或多个扩展表中有一行(一对一或零关系).
我不确定它是你正在做什么的最合适的架构.如果学术记录和学生之间确实存在一对一的关系,那么看起来它们对我来说就是同一个实体的一部分.
在这种情况下,从标准化的角度来看,记录列应该是主学生表的一部分.也许有一个效率理由去反规范,但"我不想增加表格大小"通常不是一个充分的理由.数据库可以应对大表.
| 归档时间: |
|
| 查看次数: |
11799 次 |
| 最近记录: |