Как стать автором
Обновить

Комментарии 4

Однако, если нет узла "Подразделение", либо значение не заполнено - значение будет взято из вышестоящего узла

Как понять, вернулось запрашиваемое значение или родительское?

который всегда возвращает значение

Что если справочник вообще пустой или нет никакого родителя? Тогда значение не вернётся, а значит - значение возвращается не всегда

Ну это-же "мысли по-поводу", а не готовое приложение...

Можно добавить значение по-умолчанию можно еще много чего.

Глубина иерархии такого справочника не ограничена

Тогда нужен не COALESCE а рекурсивный запрос.

  1. Моделей иерархии в РСУБД достаточно много, указанная Вами - самая простая в реализации, но возможно не самая оптимальная в эксплуатации. http://www.codenet.ru/db/other/trees/

  2. Всегда ли надо заменять на более "общую" информацию? Пример иерархии Предприятие - Отдел - Сотрудник. Вы запрашиваете адрес сотрудника, а получаете адрес подразделения или предприятия, запрашиваете ИНН сотрудника - получаете ИНН предприятия, где он работает. Мне кажется это будет даже хуже, чем отсутствие информации.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации