Je pense que la forme classique du problème est que vous avez des employés et que des employés ont des managers, de sorte que le manager a un manager à moins qu'il ne soit le PDG.Meilleure pratique pour stocker des données arborescentes dans une base de données
Alors, comment stockez-vous les données? Solution 1: Il semblerait que la table employee puisse avoir manager_id ou que vous puissiez avoir une table employee_manager (de cette façon, vous pouvez avoir plusieurs ou zéro managers). Certaines personnes disent que la solution 1 est une mauvaise idée car SQL ne prend pas en charge la récursivité et il n'y a pas de requête pour trouver tous les gestionnaires au-dessus d'un employé. Ces personnes ont des idées alternatives (comme l'employé a une liste de gestionnaires), mais ils semblent tous impliquer un tas de données non normalisées qui est extrêmement difficile à maintenir.
Alors, qu'en pensez-vous?
[expressions de table commune] (http://stackoverflow.com/tags/common -table-expression/info) font partie de la norme ANSI-99 SQL et permettent d'effectuer des requêtes récursives. – Allan