Tengo una tabla Person
que tiene 3 columnas: Id, Name, ParentId
donde ParentId
es Id
de la fila primaria.Consulta de datos de estructura de árbol en SQL Server
Actualmente, para mostrar todo el árbol, debería recorrer todos los elementos secundarios hasta que no haya más elementos secundarios. No parece demasiado eficiente.
¿Existe una manera mejor y más eficiente de consultar estos datos?
Además, ¿hay una mejor manera de representar esta estructura arborescente en una base de datos de SQL Server? ¿Un diseño alternativo para mi mesa/base de datos?
Consulte http://stackoverflow.com/questions/935098/database-structure-for-tree-data-structure para obtener una pregunta similar con respuestas. – JeremyDWill
Vea la baraja de diapositivas de Bill Karwin [SQL Antipatterns back] (http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back) - describe varios antipatrones - entre ellos el "árbol ingenuo" que tiene - y ofrece posibles soluciones para ello. También tiene un gran libro con el mismo nombre [SQL Antipatterns] (http://pragprog.com/book/bksqla/sql-antipatterns) - ¡muy recomendado! –