Комментарии 4
Однако, если нет узла "Подразделение", либо значение не заполнено - значение будет взято из вышестоящего узла
Как понять, вернулось запрашиваемое значение или родительское?
который всегда возвращает значение
Что если справочник вообще пустой или нет никакого родителя? Тогда значение не вернётся, а значит - значение возвращается не всегда
Глубина иерархии такого справочника не ограничена
Тогда нужен не COALESCE а рекурсивный запрос.
Моделей иерархии в РСУБД достаточно много, указанная Вами - самая простая в реализации, но возможно не самая оптимальная в эксплуатации. http://www.codenet.ru/db/other/trees/
Всегда ли надо заменять на более "общую" информацию? Пример иерархии Предприятие - Отдел - Сотрудник. Вы запрашиваете адрес сотрудника, а получаете адрес подразделения или предприятия, запрашиваете ИНН сотрудника - получаете ИНН предприятия, где он работает. Мне кажется это будет даже хуже, чем отсутствие информации.
Наследование данных или иерархический справочник неограниченной глубины, который всегда возвращает значение…