Чтобы таблица была в 5NF, сначала она должна быть в 4NF. Чтобы быть в 4NF, сначала он должен быть в 3NF. И так далее, вплоть до 1NF.
Грубо говоря, нижние нормальные формы связаны с зависимостями между ключами-кандидатами и непростыми атрибутами. Но единственные непростые атрибуты, которые мы можем видеть, это "title" и "is_private". Так что на самом деле нет никакого способа сказать.
Чтобы взять одну таблицу в качестве примера, "group_users" находится в 5NF, если у него нет других столбцов.
Позже
Если вы расширите таблицу group_users, как это
create table group_users (
group_id integer not null references groups (group_id),
user_id integer not null refrences users (user_id),
user_type_id integer not null references user_types (user_type_id),
primary key (group_id, user_id)
);
тогда вы все еще в 5NF. Столбец "user_type_id" не зависит только от user_id - если бы это было так, вы бы не были в 2NF. Но user_type_id не является атрибутом только пользователя; это атрибут пользователя в этой конкретной группе . Нет частичных ключевых зависимостей; нет переходных зависимостей; нет независимых, многозначных фактов; нет зависимостей соединения; так что в 5NF.
Эта структура допускает использование только одного user_type_id для каждого пользователя в группе. Если вы думаете, что у пользователей должно быть несколько типов пользователей в каждой группе, то это
create table group_users (
group_id integer not null references groups (group_id),
user_id integer not null refrences users (user_id),
user_type_id integer not null references user_types (user_type_id),
primary key (group_id, user_id, user_type_id)
);
равно и в 5NF. Нет частичных ключевых зависимостей; нет переходных зависимостей; нет независимых, многозначных фактов; нет зависимостей соединения; так что в 5NF.