Hay muchas formas de almacenar jerarquías en bases de datos SQL. Cuál elegir depende del producto DBMS que utilice y de cómo se utilizarán los datos. Como ha utilizado la etiqueta MSSQL2005, creo que debería comenzar a considerar el modelo "Lista de adyacencia"; si encuentra que no funciona bien para su aplicación, eche un vistazo a la comparación de Vadim Tropashko que destaca las diferencias entre los modelos con un enfoque en múltiples características de rendimiento.