|
Деревянная таблица или как упорядочить
|
|||
---|---|---|---|
#18+
День добрый! Вот в свое время решил обойтись малой кровью http://www.sql.ru/forum/actualthread.aspx?tid=816438 но теперь вопрос встал ребром... Классическая табличка с полями id, parent_id, .... Вот ее то и надо упорядочить чтобы порядок следования записей соответствовал наследованию ... Пока кроме создания вспомогательного поля содержащего символьное представление значений id (от корня и до ...) ничего не придумал ... Может есть решение лучше, а то в случае целочисленных id и parent_id при произвольном числе уровней 'вложенности' уже не решается ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2011, 10:14 |
|
Деревянная таблица или как упорядочить
|
|||
---|---|---|---|
#18+
_usa__83_Классическая табличка с полями id, parent_id, .... Вот ее то и надо упорядочить чтобы порядок следования записей соответствовал наследованию ... Это как? Например, если запись имеет id = 1, а parent_id = 2, то ...? Не надо навешивать на ключевые поля "левые" функции. Цель ключевых полей - только и исключительно идентификация записей. Упорядочивание - это задача вообще никак от значения ключей не зависящая. Вот и добавляйте еще одно поле, которое будет содержать порядковый номер. Либо сквозной на все дерево, либо в пределах одного родителя без вложенности. Ну и триггер, который будет следить за корректностью нумерации. Древовидные структуры в реляционных базах данных заведомо избыточны, поскольку их структура противоречит реляционной модели. Как правило, при проектировании той или иной древовидной структуры, выбор стоит между простотой модификации и простотой выборки. Совместить оба этих требования - не получается... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2011, 10:50 |
|
Деревянная таблица или как упорядочить
|
|||
---|---|---|---|
#18+
+1 Вот я еще в 94-м столкнулся с такой проблемой. Мне повезло, что Фоксом я уже занимался около года, хотя тогда - еще без ИНета и даже Горяева не читал, не то что Попова... А вот всё же умудрился сразу сделать третье поле, и отдельную процедуру для нумерации дерева для отображения... Опять же, Фокс был ещё даже 2.5... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2011, 09:48 |
|
|
start [/forum/topic.php?fid=41&fpage=80&tid=1584565]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
175ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 282ms |
total: | 547ms |
0 / 0 |