La meilleure façon de modéliser les données heriarchical dépend de ce que les opérations dont vous avez besoin pour soutenir. Je suggère que vous lisiez les diapositives de Bill Karwin Models for heirarchical data pour une comparaison. Voir en particulier la diapositive 48 où il y a un résumé des forces et des faiblesses de chaque approche. Cependant, je ne considérerais pas l'amitié comme une structure hiérarchique. Il y aura normalement des boucles: A est ami avec B, B est ami avec C, et C est ami avec A. Au lieu de cela, vous pouvez créer une table de contacts avec deux colonnes: user_id et friend_id qui sont des clés étrangères dans la table "users":
contact_list
------------------
user_id friend_id
------------------
1 2
2 3
3 1
pour récupérer la liste des contacts pour un ID utilisateur spécifique exécuter cette requête:
SELECT friend_id
FROM contact_list
WHERE user_id = 1
ici je suppose que l'être sur la liste de contacts B ne signifie pas que B est aussi sur le contact d'une liste.
Cela ne semble pas avoir de rapport avec les structures de base de données hiérarchiques. Bien s'il vous plaît corrigez-moi si j'ai raté quelque chose. – thomasrutter