好的,我有两张桌子。带有主键book_id和另一个名为title的字段的图书表。以及具有主键author_id和字段first_name、last_name和外键book_id的author表。
我的设计符合2NF吗?

最佳答案

一般来说(通俗地说),一级标准化意味着:
不可能重复行。
行或列中没有固有的顺序。
每个“单元”只包含一条信息。
对于2nf,有一个额外的约束,即每一列都依赖于整个键(直接或间接地通过另一个非键列)。
所以我认为它符合2NF,因为它符合1NF的标准,而且这本书确实取决于作者。
然而,它仍然不一定是一个好的设计,特别是因为你应该总是从3NF开始,作为一个一般规则。一个更好的解决方案是全面展开:

books:
    book_id
    title
authors:
    author_id
    name
books_and_authors:
    book_id
    author_id

这样,你在书和作者之间就有了多对多(包括零)的关系。

关于database - 此设计会限制2NF吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10596590/

10-11 01:44