[英]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.