[英]Are these tables respect the 3NF Database Normalization?
AUTHOR
表
Author_ID
,PK First_Name
Last_Name
TITLES
表
TITLE_ID
,PK NAME
Author_ID
,FK DOMAIN
表
DOMAIN_ID
,PK NAME
TITLE_ID
,FK READERS
表
READER_ID
,PK First_Name
Last_Name
ADDRESS
CITY_ID
,FK PHONE
CITY
表
CITY_ID
,PK NAME
BORROWING
表
BORROWING_ID
,pk READER_ID
,fk TITLE_ID
,fk DATE
HISTORY
表
READER_ID
TITLE_ID
DATE_OF_BORROWING
DATE_OF_RETURNING
这看起来有点像家庭作业问题,但让我回答:
我会将标题更改为许多,并保留地址。
TITLES
表
TITLE_ID
,PK NAME
TitleAutors
表
TITLE_ID
, AUTHOR_ID
您可以将BORROWING表更改为具有条目的状态(OUT,IN,MISSING,UNKNOWN)并具有STATUS_DATE。
在没有任何业务领域知识的情况下,您如何期望任何人认真回答这个问题?
为了认真回答这个问题,我们需要知道管理数据的整套功能依赖关系,而你却没有提供这些依赖关系。
例如,对于你的方案是3NF,它需要domainID - > titleID,换句话说,每个域只有一个标题,知道域意味着你可以知道标题。 从表面上看,这似乎很奇怪,但是唯一能够确定这是否是您正在处理的商业现实的准确表示的人,就是您。
在阅读其他评论后,我想到了另一个想法。
如果是这样,您可能会在系统中输入多余的名字和姓氏,并且可能会更新异常。 例如,如果简史密斯是读者和作者并结婚并且她的姓氏改为威廉姆斯,则存在更新她的读者姓氏而不是她的作者姓氏的可能性。
您可以通过创建一个User表来修复此问题,其中您有两个用于作者和读者表的外键。 只是一个想法... ;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.