Skip to content

Latest commit

 

History

History
87 lines (49 loc) · 3.18 KB

nsi.md

File metadata and controls

87 lines (49 loc) · 3.18 KB

На чем основан выбор хранения иерраричесикх данных

  1. Частота обновления: не часто (1 раз в год), перемещение веток не предусмотрено

  2. Сложность структуры ( 3 уровня вложенности )

  3. Момент синхронизации :

    • удаление узла - помечем флагом
    • синхронизация по коду (маппинга)

Существующие методы храненя иерархических данных:

  1. Метод (Adjacency List) parent_id

Плюсы:

  • быстрая вставка
  • перемещение веток
  • простота реализации
  • для быстрой выборки результат придеться кешировать

Этот вариант, больше подходит, если давнные часто меняются

  1. Метод Closure table ( усовершенствованный предыдущий метод)

Плюсы

  • просто
  • быстрая выборка (если не учитывать сортировку )

Минусы

  • не подходит, если частое обновление
  1. Nested sets

Плюсы

  • скорость выборки уже с сортировкой
  1. Materialized Path

Плюсы

  • записи выбираются уже отсортированными в нужном порядке.
  • простота решения
  • скорость выборок высокая (1 запрос)
  • быстрая вставка

Внутренняя структура классификатора изначально представляет собой граф, где вершины – это объекты классификации, а дуги – информация соподчиненности объектов.

Структура кодового обозначения в блоке идентификации: ХХ ХХХ ХХХ КЧ,

где

1,2 знаки – объекты первого уровня классификации;

3,4,5 знаки – объекты второго уровня классификации;

6,7,8 знаки – объекты третьего уровня классификации;

КЧ – контрольное число.

постоянную глубину рекурсии

Вывод

  • если данные не часто меняюся, и структура классичифкатора небольшая использовать отдельную таблцу для классияикатора

  • второй момент, если данные листьев требуют отдельной структуры данных то и использовать отдельную таблицу

плюсы

  • поиск

  • вставка данных

  • плюс вынесит отдельную ьаблицу для срока хранения дел и документво

  • в БД для классфикатора использвать ltree