Рефераты | Рефераты по информатике, программированию | Иерархические справочники с линейным временем доступа | страница реферата 4 | Большая Энциклопедия Рефератов от А до Я
Большая Энциклопедия Рефератов от А до Я
  • Рефераты, курсовые, шпаргалки, сочинения, изложения
  • Дипломы, диссертации, решебники, рассказы, тезисы
  • Конспекты, отчеты, доклады, контрольные работы

  • ПРЕДУПРЕЖДЕНИЕ

    В многопользовательской среде, для некоторых баз данных, таких, как MSSQL, подобное добавление является классическим случаем фантома. Чтобы преодолеть данную проблему, можно повысить уровень транзакции до Serializable, использовать в качестве поля Position автоинкрементальное поле или просто учитывать, что можно получить ошибку при вставке одинаковых значений в уникальный индекс поля Path.

    Удаление узла с потомками

    Удаление похоже на операцию выборки за исключением того, что мы также должны удалить текущий узел:

    DELETE FROM DEPARTMENT

    WHERE Path LIKE '1.1%'

    С помощью дополнительной точки в аргументе оператора LIKE можно удалить все дочерние элементы без родительского узла:

    DELETE FROM DEPARTMENT

    WHERE Path LIKE '1.1.%'

    Имеет смысл построить триггер, который будет автоматически удалять дочерние элементы:

    CREATE TRIGGER DELETE_NODES_TR

      ON DEPARTMENT AFTER DELETE

    AS

    DECLARE @ParentPath VARCHAR(180)

    BEGIN

      SELECT @ParentPath=Path FROM deleted

     DELETE FROM DEPARTMENT WHERE Path LIKE @ParentPath+'.%'

    END

    В этом случае можно гарантировать, что узел будет удаляться вместе с дочерними элементами, и команда удаления еще более упростится.

    DELETE FROM DEPARTMENT WHERE Path='1.1'

    Перенос узла

    Перенос узла – более сложная операция, чем предыдущая. Для нее нужно будет выполнить две команды обновления. Например, перенесем узел с Path 1.1, сделав его дочерним узлом по отношению к узлу 1.2. Первой командой мы перенесем сам узел:


    Рекомендуем скачать другие рефераты по теме: сочинение рассуждение на тему, уголовное право шпаргалки.



    Предыдущая страница реферата | 1  2  3  4  5  6 |




    Поделитесь этой записью или добавьте в закладки

       




    Категории:



    Разделы сайта




    •