create table boolean (
id integer primary key,
name text not null unique
)
insert into boolean (name) values ('true');
insert into boolean (name) values ('false');
create table document (
id integer primary key,
name text not null unique,
body text not null,
is_archived not null integer,
foreign key (is_archived) references boolean (id)
on delete cascade
on update no action
);
Solved.
Bonus: DBAs hate this one weird trick that can free up incredible amounts of disk space by deleting just two rows.