Попробуйте взглянуть на проблему с позиции удобства дальнейшего использования и доработки.
В вашей формулировке можно не плодить дополнительные таблицы а просто добавить в DocumentType
* учебный план
* дошкольная программа
* школьная программа
* программа высшего учебного заведения
* реферат
* сочинение
Но организовывать фильтрацию(например только программ) будет неудобно.
Если в дальнейшем может появиться разделение рефератов на дошкольные/школьные и вы захотите фильтровать документы для школьников, то лучше делать так как вы предлагаете.
рисовал. есть eer диаграмма (mysql workbench). По этому и спрашиваю тут, что не уверен, что это правильное решение. Ведь большинство записей будет содержать значение null для "не программ"
Это необходимо для реального использования или это необходимо, чтобы сдать домашнее задание?
Если для реального использования -- то смотрите ответ cjey, если для того чтобы сдать преподу -- правильный ответ "да".