在约3NF维基百科的例子相符呢?

问题描述 投票:0回答:1

这是有关从normal forms采取Wikipedia文章截图。 enter image description here

有说,为了顺应3NFGenre Name列必须把它自己的字典表。

我的问题是,在Author Nationality打破3NF还存在?

database relational-database database-normalization third-normal-form
1个回答
1
投票

是的,你是对的,Author Nationality也打破3NF。

解释如下。 Book可以识别author,而不是倒过来。因此author函数依赖于书。对于authorauthor nationality同样的事情。 Author nationality函数依赖于author。有你有你的传递依赖:author nationality - > author - > book

可能在书表进行优化另一件事是列thickness。它的功能依赖于pages。具有在额外的表会矫枉过正,虽然,因为这信息可以从pages容易地得出。我个人并不存储在数据库中的信息。如果你想在数据库这个信息,你可以创建像图

CREATE VIEW v_book AS 
SELECT b.*, 
case when pages between 0 and 100 then 'slim' else 'thick' end as thickness 
FROM book b;

书籍表应该看起来像

book | author_id | pages | genre_id | publisher_id

与另一个表作者

author_id | author_name | author_nationality
© www.soinside.com 2019 - 2024. All rights reserved.