Metadata-Version: 1.1
Name: django-treensl
Version: 0.1.2
Summary: Django app to tree in DB.
Home-page: https://github.com/EvgeniyBurdin/django_treensl
Author: Evgeniy Burdin
Author-email: e.s.burdin@mail.ru
License: BSD License
Description: =====
        treensl
        =====
        
        Приложение для создание структуры "дерево" в моделях Django типа — Вложенные
        множества с ограничением по количеству уровней и возможному количеству детей
        у родителя.
        
        Ключ «id» - целочисленный. Либо int32 либо int64.
        От размера целого зависят количества допустимых уровней и детей.
        
        Связанный список с полями «id» и «parent», где «parent» ссылка на «id» родителя.
        
        Значение нового «id» вычисляется на основании размерности дерева, «id» родителя,
        и количества уже имеющихся у родителя детей.
        
        Реализованное дерево сочетает достоинства деревьев типа «Связанный список»,
        «Вложенные множества», «Материализованный путь».
        Ключ — целое число (не строка).
        
        Зная «id» элемента и размерность дерева (а мы всегда это знаем) можно осуществить:
        - Вычисление диапазона детей, без запроса к БД
        - Вычисление списка родителей, без запроса к БД
        - Почти всегда, для получения данных, можно обойтись одним запрос к таблице
        
        Недостаток — ограниченность размерности дерева разрядностью ключа.
        После выбора размерности дерева, и начала работы с ним (то есть с заполнением таблицы),
        будет уже нельзя изменить размерность.
        
        Описание алгоритма в моей статье:
        http://habrahabr.ru/post/166699/
        
        Состав репозитария:
        
        django_treensl — проект Django.
        
        treensl — приложение, реализующее описание абстрактных таблиц-деревьев и
        осуществляющее настройку БД (создание триггерных функций, вспомогательных функций,
        таблицы хранящей размерности таблиц-деревьев).
        
        myapp — приложение для примера. В нем создается модель-дерево, наследница от одной
        из абстрактных таблиц приложения treensl, записывается во вспомогательную таблицу
        размерность дерева, вставляется в дерево начальный элемент (первая запись, родитель
        для всех остальных), и производится подключение таблицы к триггерным функциям в БД.
        
        docs — на данный момент в этой папке один файл, текст программы для помощи в выборе
        размерности дерева и «id» начального элемента. Программа на python2.
        
        calc_values.py — в нем функции для вычисления диапазона детей, и списка родителей
        без обращения к БД. Эти функции могут быть использованы в приложении myapp.
        
        Приложение создавалось в Django 1.8
        
        БД пока только PostgreSQL 9.1 +
        
        Для установки скопируйте репозитарий к себе на диск, создайте БД, поменяйте настройки
        в settings.py на свои, выполните manage.py migrate... можно запускать и смотреть работу
        тестовой таблицы Group
Keywords: django
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
