AUTHOR表
Author_ID,PKFirst_NameLast_NameTITLES表
TITLE_ID,PKNAMEAuthor_ID,FKDOMAIN表
DOMAIN_ID,PKNAMETITLE_ID,FKREADERS表
READER_ID,PKFirst_NameLast_NameADDRESSCITY_ID,FKPHONECITY表
CITY_ID,PKNAMEBORROWING表
BORROWING_ID,pkREADER_ID,fkTITLE_ID,fkDATEHISTORY表
READER_IDTITLE_IDDATE_OF_BORROWINGDATE_OF_RETURNING1. Are these tables respect the 3NF Database Normalization?
2. What if 2 authors work together for the same title?
3. The column Addresss should have it's own table?
4. When a reader borrows a book, I make an entry in BORROWING table. After he returns the book, I delete that entry and I make another one entry in HISTORY table. Is this a good idea? Do I brake any rule? Should I have instead one single BORROWING table with a DATE\_OF\_RETURNING column?
发布于 2010-04-10 09:30:14
这看起来有点像家庭作业问题,但无论如何让我回答:
发布于 2010-04-10 09:18:23
我会把标题改为多到多,留下地址。
TITLES表
TITLE_ID,PKNAMETitleAutors表
TITLE_ID,AUTHOR_ID您可以更改借用表,使其具有条目的状态(OUT、IN、缺失、未知)并具有STATUS_DATE。
发布于 2010-04-10 22:51:18
你怎么能指望任何人在不了解你的业务领域的情况下认真回答这个问题?
为了认真回答这个问题,我们需要知道支配您的数据的全部功能依赖关系,而您还没有提供这些依赖关系。
例如,要使您的方案处于3NF中,就需要domainID -> titleID,或者换句话说,每个域只有一个标题,而了解域意味着您可以知道标题。从表面上看,这似乎很奇怪,但唯一能确定这是否是你正在处理的商业现实的准确代表的人是你。
https://stackoverflow.com/questions/2612848
复制相似问题