2010-08-13 18 views
-1

Je veux créer une base de données qui peut stocker la liste de contacts amis comme réseau social quelle est la meilleure façon de concevoir la structure de la base de données et facile à récupérer les contacts d'amis utilisant mysql.Enregistrer et récupérer des amis liste de contacts en utilisant mysql

J'ai besoin pour cette solution, HELP ME

+1

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

Répondre

1

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.

+1

Le livre de Karwin [SQL-Antipatterns] (http://pragprog.com/titles/bksqla/sql-antipatterns) est une excellente lecture. Fortement recommandé. – sarnold

+0

Merci .. Encore une chose Savez-vous comment créer ou concevoir la base de données en utilisant la table de hachage et l'indexation – Deepu