Вы можете поместить имена свойств в дополнительную таблицу, например
Properties
id name
1 type of contract
2 number of jobs
3 duration contract (no type of contract)
затем используйте
SpecificProperties
foreign key (Employment) foreign key (Properties)
1 1
1 2
2 3
2 2
как соединительная таблица, отражающая взаимосвязь «многие-многие» - одно или несколько заданий могут иметь одно или несколько свойств, поэтому вместо указания «количества заданий» для каждого задания вы просто указываете его идентификатор из таблицы свойств.
@ комментарии
Но если «количество заданий» - это поле, а не просто текст для отображения, то в качестве значения строки его не должно быть в SpecificProperties. Вместо этого оно должно быть где-то в виде имени столбца, но не вместе с информацией о контракте.
Пример:
Боб - дизайнер мультимедиа, работающий с некоторой даты до другой даты, над контрактом типа x, который стоит somemoney и так далее.
Табличные контракты (или Занятость) со столбцами (id, user_id, job_id, start_date, end_date, salary) могут содержать информацию об этом, но поскольку больше людей могут работать точно так же, чтобы избежать сохранения избыточных данных, мы можем использовать внешний ключ job_id для Jobs таблица со столбцами (id, group_id, job_name, number_available). Таким образом, мы знаем, что у нас может быть всего 10 дизайнеров, работающих в мультимедиа, независимо от того, какие контракты они действительно получили.