ник: Explorer
отдаю должное академическому подходу к разработке объектов и не хочу показаться занудой,
но у вас очень плохо проработана схема данных - что-то совсем не то вы собираетесь учитывать, столкнетесь вы с этим со всей очевидностью примерно на 60% законченой разработки
сообщаю об этом только потому, что переделать БД потом будет весьма непросто - судя по всему вас ждет много сюрпризов.
больше внимания уделите проработке схемы, не пренебрегайте таблицами для связей many-to-many
заведите таблицы для сохранения истории изменений статусов документа и других его атрибутов
заведите таблицы для хранения иерархии соотношений документов и приложений к ним...
посмотрите - может быть где-то нужно поменять ключи на нативные, вместо суррогатных
никогда не используйте слеши (и другие символы *+- и т.п.) в кодах документов - это зло
везде пишите примечания и дескрипшен на начальном этапе разработки - скоро это сэкономит вам время :)
------------------------------------
половина проблем с написанием запросов решается на уровне отимизации схемы данных - не забывайте об этом правиле :)