Hola
Mi problema es el siguiente: por alguna razon en una tabla tengo almacenados registros padres y registros hijos , los registros hijos pueden pertenecer a una jerarquia de quinto nivel.
Lograr establecer la relacion de un registro padre con un registro hijo es facil, solo se requieren dos campos. El problema aparece cuando yo quiero mostrar todos los registros en un grid de una manera jerarquica (como si estuvieramos utilizando un treeview), para
Este objetivo necesito la creacion de campo especial que me permita establecer el debido
Orden par mostrar la jerarquia adecuadamente.
A mi se me ocurrio la siguiente idea: digamos que un registro padre le creamos un Id=1
Yque el siguiente registro padre tiene un id= 2, entonces si quiero añadir un registro hijo
Al primer registro padre solamente necesitaria establecer una formula como esta:
ActualRegistroPadre+SiguienteRegistroPadre/2=NuevoIdRegistroHijo
y asi sucesivemente para establecer el Id apropiado que me permita mostar los datos de una manera jerarquica (por supuesto esta es una manera simple de mostrar la solucion).
El problema es que tarde o temprano no tendre numeros de donde echar mano debido a las limitaciones de los campos numeric, float o double (necesito que cada padre pueda tener n
Numero de hijos [no subnodos, aunque n numero de subnodos seria fantastico] ).
Se que utilizando estructuras como listas o arreglos el problema se podria solucionar (incluso se podria tener una jerarquia de n niveles y n numero de hijos), pero
Desafortunadamente no domino lenguajes como C como para lograr llegar a una solucion
como esa. Ademas se me podria proponer utilizar el MsHflexgrid pero desafortunadamente
este control solo es de lectura y creo que cada nivel de la jerarquia debe estar almacenado
en una tabla, entre otras cosas.
¿Como solucionar este problema?
Mi segunda pregunta seria acerca de tablas jerarquicas, es decir, es normal almacenar
Tanto los registros padres como los registros hijos en una misma tabla.
¿Hay otras formas de establecer estas relaciones de una manera mas eficaz o adecuada
(siempre buscando como solucionar el problema original)?
Gracias de antemano