Если вам нужна общая таблица вложений, вы можете сделать следующее:
create table attachments
(attachment_id int not null,
parent_id int not null,
parent_type varchar(32) not null,
other_cols_here,
primary key(attachment_id))
Это позволит вам иметь независимые таблицы сущностей (поэтому вам не обязательно всегда иметь строку в какой-то общей таблице для задания, действия и т. Д.). Чтобы найти вложение, скажем, для миссии, вам нужно сделать: select * from attachments where parent_id = MISSION_ID and parent_type = 'mission'
Недостатком этого, конечно, является то, что вы отказываетесь от возможности иметь ограничение внешнего ключа для таблицы миссии для parent_id.