Aide - Recherche - Membres - Calendrier
Version complète : Problème au niveau de la conception d'un projet
Forum Webmaster - Ton Webmaster > Conception de sites > Programmation
Evocatii
Bonjour à tous,

Je développe actuellement un projet PHP type "rencontres" et j’aurais une question.

L’idée serait de calculer un pourcentage d’affinité entre membres en fonction de leurs profils.

Ainsi chaque membre et ses attributs sont stockés dans une base de données mySql et le calcul d’affinité se fait ensuite en PHP.

Le problème : si je prends l’utilisateur A, et que je veux lui faire ressortir les membres qui sont le plus compatibles avec lui, je dois lire tous la table stockant les membres dans mySql et traiter les résultats en PHP. Ce processus fonctionne très bien quand on a quelques membres, mais cela devient fastidieux et consomme de plus en plus de ressource lorsque le nombre de membres augment.

Bref, comment faut-il faire pour optimiser tout cela ou traiter cela de manière plus élégante ?

Un grand merci pour votre aide,
Metallic-84s
tigood
JE n'ai jamais fait ni imaginé, mais une idée comme ca vient de s'afficher dans ma tete :
Pour chaque membre, tu crée un champ supplémentaire dans la bdd.
Ce champ serait un résumé BINAIRE du profile de ton membre.
Par exemple :

aime les grand = X1 (1 ou 0)
aime les petit = X2
aime les blond = X3
aime les bruns = X4

Ton champ serait : X1X2X3X4 (sur 4 bits donc, que tu pourrais convertir en décimal ou laisser en texte).

Ensuite, pour trouver l'affiniter de 2 membre, il faudrait multiplier (bit à bit = XOR) ces champs.


Ceci n'est qu'une piste, je ne dit pas que c'est la meilleur solution. Peut etre faut il faire une table intermédiaire supplémentaire.
C\'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d\'information, la mise en page et les images, veuillez cliquez ici.
Invision Power Board © 2001-2012 Invision Power Services, Inc.