Ik ben bezig een intranet applicatie (PHP - MySQL) aan het ontwerpen waarin bijna alles draait rond het hiërarchisch opslaan van data. Trees dus.
De tree zal vermoedelijk enkele tienduizenden nodes bevatten en moet frequent worden upgedate (nodes toevoegen, verschuiven, ...). Het is echter niet zo dat de boom 100x per minuut zal upgedate worden....
Wat de backend betreft zijn er blijkbaar een tweetal veel voorkomende manieren om de data op te slaan (zie o.m. http://www.sitepoint.com/...archical-data-database/):
- id, parent_id, order
- modified preorder tree traversal algorithm
De frontend zou ik met JS en eventueel AJAX in elkaar zetten, zodat het geheel dynamisch geladen kan worden. Nu vraag ik me echter af welke methode het meest aangewezen is in mijn situatie. Als je een tree bewerkt, zal die op een bepaald moment moeten worden opgeslagen. Dus moet er vergeleken worden met de bestaande tree, zodat de wijzigingen kunnen bewaard worden.
Het lijkt me eenvoudiger om 2 adjacent trees met elkaar te vergelijken dan 2 MPT's?
Iemand ervaringen met deze problematiek?
De tree zal vermoedelijk enkele tienduizenden nodes bevatten en moet frequent worden upgedate (nodes toevoegen, verschuiven, ...). Het is echter niet zo dat de boom 100x per minuut zal upgedate worden....
Wat de backend betreft zijn er blijkbaar een tweetal veel voorkomende manieren om de data op te slaan (zie o.m. http://www.sitepoint.com/...archical-data-database/):
- id, parent_id, order
- modified preorder tree traversal algorithm
De frontend zou ik met JS en eventueel AJAX in elkaar zetten, zodat het geheel dynamisch geladen kan worden. Nu vraag ik me echter af welke methode het meest aangewezen is in mijn situatie. Als je een tree bewerkt, zal die op een bepaald moment moeten worden opgeslagen. Dus moet er vergeleken worden met de bestaande tree, zodat de wijzigingen kunnen bewaard worden.
Het lijkt me eenvoudiger om 2 adjacent trees met elkaar te vergelijken dan 2 MPT's?
Iemand ervaringen met deze problematiek?