Признаком попытки использования антипаттерна Простые деревья может быть возникновение одной из следующих ситуаций:
• «Сколько уровней необходимо поддерживать в деревьях?»
Вы стремитесь получить всех потомков или предков узла без использования рекурсивного запроса. Вы идете на компромисс, поддерживая только деревья ограниченной глубины, но напрашивается следующий вопрос: какая глубина деревьев будет достаточна?
• «Постоянно испытываю благоговейный страх, когда надо работать с программным кодом, управляющим структурами данных дерева».
Вами принято одно из наиболее сложных решений по управлению иерархиями, но вы исповедуете неправильный подход. Каждый метод облегчает выполнение некоторых задач, но обычно за счет того, что другие задачи становятся труднее в реализации. Возможно, вы выберете решение, которое не станет лучшим вариантом использования иерархий в вашем приложении.
• «Мне требуется периодически запускать скрипт, чтобы убирать осиротевшие строки в деревьях».
При удалении узлов, не являющихся листьями, приложение создает в дереве разъединенные узлы. Когда в базе сохраняются сложные структуры данных, необходимо поддерживать структуру в согласованном, достоверном состоянии после любого изменения. Можно воспользоваться одним из решений, представляемых ниже, вместе с триггерами и каскадными ограничениями внешнего ключа, чтобы сохранять структуры данных, отличающиеся эластичностью, а не хрупкостью.
Опубликовал vovan666
June 18 2013 12:24:55 ·
0 Комментариев ·
3437 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.