{"id":16770192,"url":"https://github.com/alexandre-t/tree","last_synced_at":"2025-08-26T03:13:59.495Z","repository":{"id":57014310,"uuid":"85553687","full_name":"Alexandre-T/tree","owner":"Alexandre-T","description":"Intervallary tree — Arborescence intervallaire","archived":false,"fork":false,"pushed_at":"2017-04-01T08:07:08.000Z","size":68,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-23T02:30:11.998Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Alexandre-T.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-20T08:43:15.000Z","updated_at":"2017-03-20T16:57:43.000Z","dependencies_parsed_at":"2022-08-22T10:11:05.097Z","dependency_job_id":null,"html_url":"https://github.com/Alexandre-T/tree","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alexandre-T%2Ftree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alexandre-T%2Ftree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alexandre-T%2Ftree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alexandre-T%2Ftree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Alexandre-T","download_url":"https://codeload.github.com/Alexandre-T/tree/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243886016,"owners_count":20363649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T06:23:08.851Z","updated_at":"2025-03-16T15:19:23.560Z","avatar_url":"https://github.com/Alexandre-T.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arborescence intervallaire\nReprésentation intervallaire des arbres\n----\n[![SensioLabsInsight](https://insight.sensiolabs.com/projects/e8b1e0a1-da1c-4be2-9716-cc84acf1a38d/mini.png)](https://insight.sensiolabs.com/projects/e8b1e0a1-da1c-4be2-9716-cc84acf1a38d)\n[![Build Status](https://travis-ci.org/Alexandre-T/tree.svg?branch=master)](https://travis-ci.org/Alexandre-T/tree)\n[![Coverage Status](https://coveralls.io/repos/github/Alexandre-T/tree/badge.svg?branch=master)](https://coveralls.io/github/Alexandre-T/tree?branch=master)\n[![Dependency Status](https://www.versioneye.com/user/projects/58d12007cef5000042e609d7/badge.svg?style=flat-square)](https://www.versioneye.com/user/projects/58d12007cef5000042e609d7)\n----\n\nPour éviter des autojointures et de la récursivité de requête, \n[l'arborescence intervallaire](http://sqlpro.developpez.com/cours/arborescence/)\naméliore efficacement le stockage et la recherche en base de données. Cette méthode \nest particulièrement utile pour stocker les fils d'Ariane \nou les catégories imbriquées. [Frédéric Brouard](http://sqlpro.developpez.com/) a écrit un \n[article](http://sqlpro.developpez.com/cours/arborescence/) et considérablement\namélioré intrasèquement les requêtes SQL exécutés, mais ce processus permet surtout de\ndiminuer dratiquement le nombre de requête nécessaire pour obtenir les tuples souhaités.\n\nCette image extraite de son article présente une arborescence intervallaire:\n![Exemple d'arbre stocké sous forme d'arborescence intervallaire](http://sqlpro.developpez.com/cours/arborescence/images/SQLtree3.gif)\n\nPour résumer, pour obtenir tous les descendants de `terrestre`, il suffit d'une requête pour récupérer \ntous les tuples dont les bornes sont comprises entre celles de `terrestre`, c'est-à-dire entre\n `22` et `36`.\n\nDans sa version 1.0, ce bundle permettra de récupérer un ensemble d'entités rapidement.\nDans sa version 2.0, ce bundle permettra également de manipuler les entités (ajout, modification, suppression)\n\nComment utiliser ce paquet ?\n----\nSi vous avez une entité devant être stockée par arborescence intervallaire, il vous suffit de créer une entité héritant de AbstractTree\nEnsuite pour manipuler ces entités (ajout, suppression, etc...) il vous suffit de faire appel au TreeManager. Il fera appel au TreeRepository\net lèvera des exceptions TreeException en cas d'erreur.\n\nCette documentation va évoluer rapidement. Je recherche un traducteur vers l'anglais.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandre-t%2Ftree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexandre-t%2Ftree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandre-t%2Ftree/lists"}