我有这个数据库与患者,我被问到它是否在3NF。乍一看,我以为是,但当我在Occupy
桌上看起来更好时,我改变了主意。我将尽可能多地解释数据库。
病房,主键是(W_id
,H_id
)
决赛桌让我改变了对这个数据库规范化的看法。这张表说明了每位患者在特定日期进入哪家医院的病房。主键也是可疑的,它是所有列,甚至是输入日期。
这个数据库是这样给我的,包括这些表及其主键。
答案 0 :(得分:1)
表格" ward"似乎不是在2NF。 W_id似乎确定了Wname。
在2NF中,不属于主键的每个属性不能仅由主键的一部分确定。它只能由整个主键确定。
不在2NF中的架构不能在3NF中。因此,此数据库架构不在3NF中。
答案 1 :(得分:1)
我参与过很多医疗保健应用程序,我会对架构进行以下更改。
病房表
向Wards Table添加Identity字段,将其设为主键,在H_ID和W_ID上创建唯一约束。
占据表
在占据表
中使用Ward表中的Identity列作为参考键,显然是患者的P_ID。
日期时间列,用于记录入场或出院的日期时间。
另一列记录事件类型(入院,出院,出院到另一个病房等),引用Event_Types中的另一列
为Occupy表中的Event_Type列引用的事件类型Event_Types创建另一个表。
EventTypeID EventTypeDescription
1 Admission
2 Discharged
3 Discharged to Another Ward