Есть прототип некоей системы на PHP 5.2 + Dojo 1.8.
Там есть таблица в БД такой структуры, что браузится пользователем в прикладном ПО как некое дерево.
Для удобства работы написан класс, архитектурная модель которого может быть названа паттерном.
Некоторые листы этого дерева (те, у которых указан тип из определённого списка) связаны через свое значение с другой таблицей БД, но во второй — структура проще: набор полей, некоторые из которых могут быть пустыми.
Хочется, чтобы данные второй таблицы можно было сделать частью существующего дерева, т.е. открывать как узлы и браузить контент как единое целое, без особых ухищрений. Хочется, чтобы такой лист стал узлом, у которого дети — непустые поля во второй таблице. Не хочется писать обёртку, а просто влить второй паттерн в первый с минимумом изменений. Тем более, что первый паттерн в связке с первой таблицей БД уже доказал свою работоспособность.
Внутри первого паттерна элементы дерева связаны друг с другом по целочисленным ID. Может, генерировать ID для второй таблицы из такого диапазона, чтобы он просто не пересекался с ID из первого диапазона? Но могут пересечься ID с первой таблицей, поэтому не получится слить «в лоб».
И есть ли варианты умного клея: как склеить паттерны так, чтобы не переделывать первый паттерн, например, поискать швы?