我已经为兽医诊所创建了一个数据库。
我有一个称为约会的表,这是其中包含的内容。
appointment_id, patient_id, customer_id, staff_id, date_time
每个客户(所有者)都有一个病人(宠物)。
由一名工作人员任命。
那我的表结构对吗?它应该是3nf。
最佳答案
不它不是。appointments
和patients
之间存在传递依赖。考虑此更新异常:
UPDATE appointments
SET appointments.patient_id = 42
WHERE appointments.appointment_id = 1;
/* hey that's not my dog!
*/
如果患者和客户是一对一的,请将患者ID存储在客户的表上,并通过联接引用它。
如果一对多,则将客户ID存储在每个患者的患者表上。