parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

глубоко философский вопрос про SQL

nmakarov 24.10.2004 12:54

Народ, есть такой вопрос: возможно ли за один select выяснить непрямого потомка?
У примеру, есть табличка связи юзеров с группами. В ней, как водится, есть поле parent. Юзер "Вася" входит в группу "sales people", которая имеет в родителях группу "common sales". С другой стороны есть некая функция "ShowSalesList", требующая зарегистрированного пользователя из той самой группы "common sales" или ее потомков.
Вот бы мне иметь такой хитрый select, чтобы отдать ему в качестве параметров имена исходной и требуемой групп и получить оттуда типа да или типа нет.
В данный момент сделано так: когда админ решает, что группа "ShowSalesList" достойна быть далеким, но прямым потомком "common sales", оно апдейтит якобы временную плоскую таблицу, где все конечные группы сассоциированы напрямую с корневыми. Поиск происходит именно в ней. С точки зрения скорости это решение - самое оно. Таблица начинает иметь просто-таки угрожающий размер.
А поэстетствовать?
Скорость в конечном счете отходит на второй план. Красота решения и моральное удовлетворение выходит вперед.