我已经为兽医诊所创建了一个数据库。

我有一个称为约会的表,这是其中包含的内容。

appointment_id, patient_id, customer_id, staff_id, date_time



每个客户(所有者)都有一个病人(宠物)。
由一名工作人员任命。


那我的表结构对吗?它应该是3nf。

最佳答案

不它不是。

appointmentspatients之间存在传递依赖。考虑此更新异常:

UPDATE appointments
SET appointments.patient_id = 42
WHERE appointments.appointment_id = 1;
/* hey that's not my dog!
 */


如果患者和客户是一对一的,请将患者ID存储在客户的表上,并通过联接引用它。

如果一对多,则将客户ID存储在每个患者的患者表上。

10-08 20:17