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
Requires
- php: >=5.6
- doctrine/orm: ^2.5
- symfony/framework-bundle: ^2.8|^3.1
Requires (Dev)
This package is auto-updated.
Last update: 2024-11-04 21:35:58 UTC
README
Représentation intervallaire des arbres
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:
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.