可能6NF表包含外键吗?

时间:2013-05-14 21:45:13

标签: database database-design normalization database-table 6nf

当域是外键时,表是否满足6NF? E.g:

CREATE TABLE authors(
    author_id serial NOT NULL PRIMARY KEY
);

-- other author attributes

CREATE TABLE books(
    book_id serial NOT NULL PRIMARY KEY
);

CREATE TABLE books_author(
    book_id int NOT NULL PRIMARY KEY REFERENCES books (book_id),
    author_id int NOT NULL REFERENCES authors (author_id)
);

如果不是,模型应如何处理外键关系?

如果是M2M的关系,应该如何处理?连接表也应该是6NF吗?

1 个答案:

答案 0 :(得分:7)

6NF表示relvar不满足任何非平凡的连接依赖关系,这意味着它具有候选键和最多一个其他属性。可能有也可能没有外键。所有正常形式都与外键是否定义无关。

不确定您对M2M的疑问是什么。您何时何地使用6NF取决于您一般使用它的动机。它主要用于数据仓库和时态数据模型。