我为兽医诊所创建了一个数据库。
我有一个名为约会的表,这就是它所包含的内容。
appointment_id, patient_id, customer_id, staff_id, date_time
我的桌面结构是对的吗?这意味着3nf。
答案 0 :(得分:0)
不,不是。
appointments
和patients
之间存在传递依赖关系。请考虑此更新异常:
UPDATE appointments
SET appointments.patient_id = 42
WHERE appointments.appointment_id = 1;
/* hey that's not my dog!
*/
如果患者和客户是一对一的,请将患者ID存储在客户的桌面上并通过联接参考。
如果他们是一对多,请将患者ID存储在患者病床上。
答案 1 :(得分:0)
让我用简单的话来解释,
第三范式的条件:
- 它处于第二范式
- 没有传递函数依赖
在这种关系中,请考虑
appointment_id为A
patient_id为B
customer_id为C
在你的关系中, A->乙
B-&以及c 和A-> C
因此,存在传递性功能依赖性。
所以,它不在 3NF 。
希望,这有帮助。