Лучше всего было бы просто выделить подходящее место для произвольного максимума рабочих мест
Да.Всегда старайтесь избегать встраивания произвольных ограничений в вашу схему.Держитесь подальше от такого рода вещей:
create table employee
(
id int primary key,
name text,
job1_employer text,
job1_position text,
job2_employer text,
job2_position text
);
И вместо этого сделайте что-то вроде этого:
create table employee
(
id int primary key,
name text,
...
);
create table job_history
(
id int primary key,
employee_id int references employee,
employer text,
position text,
...
);
Итак, у вас есть один ряд для каждого сотрудника, плюс один ряд для каждогопрошлые рабочие места сотрудника.