Me enfrenté al problema similar con uno de mis proyectos. Tuvimos una gran jerarquía que seguirá aumentando para siempre. Necesitaba atravesarlo rápido y luego encontrar el grupo correcto después de algunas validaciones complejas. En lugar de ir a SQL Server y me estoy rascando la cabeza, ¿cómo puedo hacerlo de manera eficiente allí cuando sabía que las consultas recursivas son la única solución viable. Pero, ¿realmente sabe si hay alguna optimización posible en Consultas recursivas? ¿Hay alguna garantía de que su jerarquía no aumente en el futuro y un buen día descubre que sus consultas recursivas son demasiado lentas para ser utilizadas en producción?
Entonces, decidí darle una oportunidad a Neo4J. Es una base de datos de gráficos con muchos algoritmos útiles incorporados, un recorrido increíblemente rápido con documentación decente y ejemplos. Almacene la jerarquía en Neo4J y acceda a la jerarquía utilizando un servicio de ahorro (u otra cosa). Sí, tendrá que escribir un código que integrará sus consultas SQL con Neo4J pero tendrá una solución escalable y más a prueba de futuro.
Espero que le sea útil.
Lo que defiende es el modelo de codificación "ruta materializada". Ese enfoque es fácil de comprender, pero es ineficiente para algunas operaciones, ver http://vadimtropashko.wordpress.com/2008/08/09/one-more-nested-intervals-vs-adjacency-list-comparison/ –
Este es un gran pregunta ... – anbanm