Estoy buscando construir una instalación que permita consultar datos con filtrado jerárquico. Tengo algunas ideas de cómo voy a hacerlo, pero me pregunto si hay alguna recomendación o sugerencia que pueda ser más eficiente.El mejor método para buscar datos jerárquicos
Como ejemplo, imagine que un usuario está buscando trabajo. Las áreas de trabajo serían las siguientes.
1: Scotland
2: --- West Central
3: ------ Glasgow
4: ------ Etc
5: --- North East
6: ------ Ayrshire
7: ------ Etc
Un usuario puede buscar específico (es decir Glasgow) o en un área más grande (es decir, Escocia).
Los dos enfoques que estoy considerando son:
- mantener una nota de niños en la base de datos para cada registro (es decir, el gato 1 tendría 2, 3, 4 en sus hijos de campo) y consulta en ese registro con un
SELECT * FROM Jobs WHERE Category IN Areas.childrenField
. - Utilice una función recursiva para encontrar todos los resultados que tienen una relación con el área seleccionada.
Los problemas que veo desde ambos son:
- Manteniendo estos datos en el PP significará tener que llevar un registro de todos los cambios en la estructura.
- La recursividad es lenta e ineficiente.
¿Alguna idea, sugerencia o recomendación sobre el mejor enfoque? Estoy usando C# ASP.NET con MSSQL 2005 DB.
Usted puede hacer consultas recursivas, si su estructura de tabla que soporta: http: // msdn.microsoft.com/en-us/library/ms186243.aspx – FrustratedWithFormsDesigner
¿Ha considerado modelar su información en XML y almacenarla en un atributo XML (en la tabla de la base de datos) para que luego pueda consultarla con XQuery? – XpiritO