好的,我有 2 张 table 。带有主键 book_id 和另一个名为 title 的字段的书表。以及一个带有主键 author_id 和字段 first_name、last_name 和外键 book_id 的作者表。
我的设计符合 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/