lex/tree

Interval tree, interval arborescence

Installs: 19

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 3

Forks: 1

Open Issues: 0

Type:symfony-bundle

v1.1.0 2017-03-31 13:56 UTC

This package is auto-updated.

Last update: 2024-11-04 21:35:58 UTC


README

Représentation intervallaire des arbres

SensioLabsInsight Build Status Coverage Status Dependency Status

Pour éviter des autojointures et de la récursivité de requête, l'arborescence intervallaire améliore efficacement le stockage et la recherche en base de données. Cette méthode est particulièrement utile pour stocker les fils d'Ariane ou les catégories imbriquées. Frédéric Brouard a écrit un article et considérablement amélioré intrasèquement les requêtes SQL exécutés, mais ce processus permet surtout de diminuer dratiquement le nombre de requête nécessaire pour obtenir les tuples souhaités.

Cette image extraite de son article présente une arborescence intervallaire: Exemple d'arbre stocké sous forme d'arborescence intervallaire

Pour résumer, pour obtenir tous les descendants de terrestre, il suffit d'une requête pour récupérer tous les tuples dont les bornes sont comprises entre celles de terrestre, c'est-à-dire entre 22 et 36.

Dans sa version 1.0, ce bundle permettra de récupérer un ensemble d'entités rapidement. Dans sa version 2.0, ce bundle permettra également de manipuler les entités (ajout, modification, suppression)

Comment utiliser ce paquet ?

Si vous avez une entité devant être stockée par arborescence intervallaire, il vous suffit de créer une entité héritant de AbstractTree Ensuite pour manipuler ces entités (ajout, suppression, etc...) il vous suffit de faire appel au TreeManager. Il fera appel au TreeRepository et lèvera des exceptions TreeException en cas d'erreur.

Cette documentation va évoluer rapidement. Je recherche un traducteur vers l'anglais.