Aller au contenu

Réseaux sociaux: Algorithme de "chemin social"


Sofresh

Sujets conseillés

Bonjour et bonne année à tous,

En testant divers services de Réseaux Sociaux, ma curiosité s'est heurtée à leur système permettant de retracer les relations entre les utilisateurs.

Prenons par exemple Pierre, qui visite le profil de Paul:

Il voit alors indiqué le "chemin social" le menant à Paul: Pierre --> Jacques --> Paul.

Si Jacques figure dans sa liste de contacts, et Paul figure dans les contacts de Jacques, l'algorithme utilisé n'est pas très compliqué.

Mais si ce n'est pas le cas? Comment est réalisé ce cheminement?

Car il peut alors être composé de bien plus de maillons, à l'infini:

Pierre --> François --> Jacques --> Paul

Où Pierre connait François, François connait Jacques, qui lui connait Paul.

J'ai beau me creuser la tête, à part en générant paquets de boucles imbriquées, et donc de requêtes BDD, je ne trouve pas de méthode propre permettant de réaliser cela :wacko:

Quelqu'un serait-il plus inspiré que moi?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Tu connais le point de départ (Pierre) mais pas forcément l'arrivée.

Tu peux donc utiliser une fonction récursive pour développer les différents liens. :)

Un peu comme un menu avec parent / enfants .

Portekoi

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

C'est la problématique du parcours de graphe : Il existe différente astuce pour optimiser tes requètes en construisant ta base sous la logique d'ensemble. Cela permet de diminuer les requètes en recherche (fréquente) mais allonge l'ajout d'enregistrement (sensé être plus rare). Je vais essayer de te trouver de la doc sur ce sujet dans mes archives. Sinon tu peux faire une recherche sur google sur ce thème.

Benoit

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...