这是从Wikipedia获取的关于范式的文章的屏幕截图。

有人说,为了符合3NF该Genre Name列,必须将其放入它自己的字典表中。
我的问题是,那里也有Author Nationality断裂吗?3NF
这是从Wikipedia获取的关于范式的文章的屏幕截图。

有人说,为了符合3NF该Genre Name列,必须将其放入它自己的字典表中。
我的问题是,那里也有Author Nationality断裂吗?3NF
是的,你没看错,Author Nationality也是破3NF。
说明如下。Book可以识别author,但反过来不行。因此author在功能上依赖于书。author和 也是一样的author nationality。Author nationality在功能上依赖于author。在那里你有你的传递依赖:author nationality-> author-> book。
可以在 book 表中优化的另一件事是 column 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