Instead of using "check (pooltype is null or (pooltype in ('Backup','Copy','Cloned','Archive','Migration')))..." we could have a table which contains those values:

pooltype text references pooltype(id);

create table pooltype (
  id text not null
);

alter table pooltype add primary key(id);

This makes it easier to get lists for menus without changing the underlying code.

Thanks to David Fetter for this one.