我一直在这里浏览网上的视频和示例。有人可以请帮忙看看并指出我在哪个部分是对还是错。我想将下表改为2NF。谢谢。
Clinic Address Therapist TherapistTel Appointment Client ClientTel
Clinic A 123 High St J Smith 77882233 25/01/2013 11:00 A Jones 32512
Clinic A 123 High St P Taylor 77235846 25/01/2013 13:00 I Davis 34251
Clinic B 80 Low St B Morris 77991487 25/01/2013 10:30 H Kelly 53692
Clinic C 3 Middle St J Smith 77882233 26/01/2013 14:00 Y Rimmer 68595
Clinic B 80 Low St J Smith 77882233 26/01/2013 09:30 H Kelly 53692
Clinic A 123 High St B Morris 77991487 25/01/2013 14:00 J Steele 36529
我的2NF表格如下:
诊所
**Clinic** Address **Therapist**
Clinic A 123 High St J Smith
Clinic B 80 Low St P Taylor
Clinic C 3 Middle St B Morris
治疗师
**Therapist** TherapistTel
J Smith 77882233
P Taylor 77235846
B Morris 77991487
客户端
**Client** ClientTel
A Jones 32512
I Davis 34251
H Kelly 53692
Y Rimmer 68595
J Steele 36529
预约
**Therapist** **Client** Appointment
J Smith A Jones 25/01/2013 11:00
P Taylor I Davis 25/01/2013 13:00
B Morris H Kelly 25/01/2013 10:30
J Smith Y Rimmer 26/01/2013 14:00
J Smith H Kelly 26/01/2013 09:30
B Morris J Steele 25/01/2013 14:00
答案 0 :(得分:0)
正如2014年1月的评论所述:
您的诊所表有许多问题,最值得注意的是P Taylor与诊所B完全无关。您需要一张桌子来连接诊所和治疗师。你的约会表也有问题;患者和治疗师都不知道您的模式中要去哪个诊所,而原始确实告诉他们去哪里。
一般来说,每个诊所都有不止一个治疗师。此外,给定的治疗师在不止一个诊所工作。因此,您需要一个诊所列表,一个治疗师列表,以及一个识别每对诊所+治疗师的清单。在预约时,治疗师J Smith可以在三个诊所中的任何一个; A Jones如何从约会表中知道J Smith的任命是在诊所A,而不是B或C?你错过了那些关键信息。您需要约会表中的日期,时间,治疗师,客户和诊所。
客户端和治疗师表很好。 Clinic表应仅包含Clinic和Address列。您的约会表需要4列:
您可能需要或可能不需要另一张桌子Therapist_Clinic,它可以指定哪个治疗师可以在每个诊所服务。对于给定的数据,它可能包含:
Therapist_Clinic
Clinic Therapist
-------- ---------
Clinic A J Smith
Clinic A P Taylor
Clinic B B Morris
Clinic C J Smith
Clinic B J Smith
Clinic A B Morris
另一方面,如果每个记录的治疗师都可以在任何一个诊所工作,那么这个表就是多余的。