Может ли таблица 6NF содержать внешний ключ?
Удовлетворяет ли таблица 6NF, если ее домен является внешним ключом? Например:
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 ответ
Решение
6NF означает, что relvar не удовлетворяет нетривиальным зависимостям соединения, что означает, что у него есть ключ-кандидат и самое большее один другой атрибут. Там могут быть или не быть внешние ключи. Все нормальные формы не связаны с тем, определены ли внешние ключи.
Не уверен, что ваш вопрос о M2M. Когда и где вы используете 6NF, зависит от вашей мотивации использовать его в целом. Его основное использование для хранения данных и временных моделей данных.