Alors il y a une logique à l'ordre des amis : celui-ci dépend de la manière dont nous les enregistrons dans notre base de données, ainsi que des requêtes que nous exécutons pour les en sortir.
Nous ne les trions pas à l'insertion. Garder le même ordre est nécessaire pour la pagination.
Imaginons rapidement la table d'amis : elle sera toujours classée de manière à ce que le numéro d'utilisateur le plus bas soit à gauche (inf < sup), et dans l'ordre inf, puis sup.
Exemple :
inf, sup
1, 42
1, 128
5, 42
5, 64
42, 64
42, 128
64, 128
La requête de sortie des amis de l'utilisateur n° 42 donnera :
42, 64
42, 128
1, 42
5, 42
Car on fait la requête en 2 fois :
1ere requête : amis avec un numéro d'utilisateur supérieur à 42
2ème requête : amis avec un numéro inférieur à 42
Ex : les amis de Devteam (07 569 711) :
11 299 896 pico77 http://pico77.skyblog.com
17 824 070 moechofe http://moechofe.skyblog.com
18 606 801 aerogus http://aerogus.skyblog.com
19 577 949 olivedev http://olivedev.skyblog.com
21 874 620 megadev http://megadev.skyblog.com
22 107 023 rik24d http://rik24d.skyblog.com
22 730 135 evelf http://evelf.skyblog.com
27 773 999 bohwaz http://bohwaz.skyblog.com
00 100 128 mathieu http://mathieu.skyblog.com
00 120 277 patrice http://patrice.skyblog.com
Bientôt :
Un système proche de celui des rencontres profils permettra de faire remonter une sélection d'amis en tant que "meilleurs amis", par exemple.
Le tri des autres amis restera le même (enfin tant qu'on ne change pas la structure de stockage des amis, ce qui arrivera, mais bien plus tard :p)