Преобразование дерева значений в таблицу значений и обратно

 

Задача по преобразованию дерева значений в таблицу значений встречается не так чтобы часто, но тем не менее встречается и я привожу в этой статье свое решение этой задачи.

Дерево значений в таблицу значений

Дано: дерево значений (2 колонки) и таблица значений (4 колонки). Две дополнительные колонки в таблице значений нужны для обратного преобразования, если оно не требуется то и колонки не нужны.

Код выглядит так:

В колонку «ГУИД» таблицы значений записывается уникальный идентификатор строки (он просто генерируется), а в колонку «Родитель» записывается уникальный идентификатор строки-родителя (для строк верхнего уровня — нулевой уникальный идентификатор).

Таблица значений в дерево значений

Обратное преобразование производится при помощи двух лишних колонок («ГУИД» и «Родитель») если из таблицы значений была удалена какая-то строка, то все подчиненные ей строки также будут удалены.

Код выглядит так:

Работу приведенного выше кода можно посмотреть в маленькой обработке.

На этом все, надеюсь статья Вам помогла.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оценка статьи:
УжасноПлохоНеплохоХорошоОтлично (оценок: 21, средняя оценка: 4,38 из 5)
Загрузка...

Понравилась статья? Поделиться с друзьями:
Комментарии: 8
  1. Алексей

    Отличное решение. Просто, коротко и по делу :) Смотрел другие варианты — много текста, а результат тот же.
    И спасибо автору, мне пригодилось.

  2. Петр

    Спасибо автору, пригодилось!

  3. Сергей

    отличная мысль — реализация через ГУИД. спасибо автору

  4. esqado

    Спасибо

  5. Светлана

    Спасибо.

  6. Темик

    Большое спасибо, очень помогло!

  7. Алексей

    Из обувной коробки, четырёх крышек для банок и двух спиц можно сделать троллейбус. Но зачем???

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: