Certains jeux sociaux sur Facebook permettent aux utilisateurs de publier un lien vers leur flux pour dire: «Cliquez ici pour obtenir des pièces d'or bonus - limité aux 5 premières personnes».Comment mettre en œuvre un lien qui peut obtenir un bonus pour 5 fois par des personnes différentes sur un réseau social?
Comment pouvons-nous générer un tel lien?
Le lien ne devrait pas être facilement «généré» par quiconque comme une méthode de triche.
En outre, quelle table de base de données (s) doit être ajouté à gérer:
1) le bonus peut être réclamé jusqu'à 5 fois
2) doivent être réclamés par des personnes différentes
(chaque personne a un ID numérique unique sur la plate-forme de réseau social tel que Facebook)
? La façon dont je pensais est d'obtenir le prochain ID primaire (un index entier) dans la table des prix, et md5 avec une clé secrète pour obtenir un "code de prix", et assurez-vous qu'il n'est pas déjà dans la table "PrizeClaimed" - s'il existe déjà, utilisez simplement l'ID principal suivant (en ajoutant un enregistrement et recalculez md5 jusqu'à ce qu'un seul soit trouvé). Cette table PrizeClaim est une table de jonction pour prize_code et user_id, donc un prix peut être réclamé par plusieurs personnes, et une personne peut réclamer plusieurs prix. Si une personne clique sur le lien, nous ajoutons l'enregistrement du prize_code et de l'user_id dans la table, mais seulement si le nombre d'enregistrements obtenus par le matching du prize_code est de 4 ou moins. Si 5 déjà, alors il suffit de signaler "trop tard - revendiqué par tous". Je me demande comment cette méthode est, y a-t-il des failles, des améliorations ou d'autres façons de la mettre en œuvre? (Par exemple, la table des prix est juste une table pour obtenir l'ID, et elle ne stocke rien d'autre.Peut-être que nous pouvons utiliser l'horodatage actuel avec microsecondes plus un nombre aléatoire pour faire le md5, et si prize_code existe déjà, Dans ce cas, nous pouvons oublier la table des prix.)
S'il vous plaît ne soyez pas offensé, mais ... comment une personne avec de nombreux "points" tels que vous posez une question si triviale? Je suis juste curieux. –