Segítség: PHP + Doctrine2 ORM

Szevasztok, van egy problémám, amire keresem a legegyszerűbb, legeffektívebb megoldást.

Leírom a helyzetet:
Elemeket kell tárolni az adatbázisban, minden elemhez hozzá van rendelve egy helyszín és egy kategória. A helyszín 3 szintes hierarchiával (megye, járás, község) a kategória n szintes hierarchiával (feltehetőleg 2-4, de akár mélyebb szint is előfordulhat) rendelkezik. A cél, hogy az elemeket szűrni lehessen kategória és helyszín szerint is, méghozzá a hierarchia bármelyik szintje szerint (pl megye vagy járás összes elemét íra ki) és ezt adott sorrendben (dátum vagy egyéb attribútum) kapjuk vissza.

PHP-t és Doctrine2 ORM-et használok (a Doctrine számomra új) és weboldalról van szó.

Jelenleg itt tartok:
Kategória: tárolja az id-t, megnevezést, szülő-re és gyermekeire a hivatkozást, hivatkozik az alá tartozó elemekre
Helyszín: tárolja az id-t, megnevezést, gps koordinátákat szülő-re és gyermekeire a hivatkozást, hivatkozik az alá tartozó elemekre

Na most eddig ez olyan egyszerűnek tűnt, hiszen kényelmesen kilistázhatom, rendezhetem, szűrhetem bármelyik kategória és helyszín elemeit, a probléma viszont az, hogy csak a közvetlenül hozzá tartozó elemeket. Én viszont rekurzívan szeretném - pl a kategória és az összes hozzá tartozó alkategória elemét. Ezt eddig úgy képzeltem el, hogy végigpásztázza az alkategóriákat és egy nagy ArrayCollection-ba menti az összes alkategória elemét, igenám csakhogy ez nincs megfelelően rendezve, ennek PHP-ben való rendezése, szűrése nagy overheaddel járna, továbbá elég gány lenne. Lehetőleg a Doctrine és az adatbázis erejével szeretném ezt megoldani.

Keresgettem nested-set pluginokat, érdekesnek tűnnek, de nem jöttem rá, hogy oldhatnám meg ezt velül.

Milyen megoldást javasoltok?

Hozzászólások