Conceptuellement parler de la rédaction d'un système de réussite d'un site Web à l'aide de PHP et de MySQL? P>
Le seul moyen de faire est de faire constamment des requêtes MySQL pour tester les réalisations et telles que telles? P>
3 Réponses :
Vous voudrez peut-être envisager de poser une question similaire sur meta , pour voir si Jeff est disposé à partager l'une de ses leçons apprises dans cette arène. Si vous le faites, la question devrait être spécifiquement sur le chemin, donc approché le problème. Cette question, cependant, est une question parfaitement valable pour ce site (puisqu'elle demande de créer un nouveau projet, inspiré de ce qui a été fait à ce sujet). strong> p>
Je soupçonne cependant que l'équipe dispose d'un travail qui exécute périodiquement un ensemble de requêtes pour rechercher de nouveaux badges pour attribuer, puis les récompense. C'est pourquoi les badges ne sont pas attribués immédiatement après que l'action soit prise pour les gagner. P>
Ah c'est vraiment un bon point! Je n'ai même pas réalisé que les badges n'étaient pas récompensés dès qu'ils auraient été attribués, cela a du sens cependant parce que ces requêtes seraient assez lentes ... pitié qu'il ne puisse pas être fait instantanément ..
Cela fait pas b> appartient à Meta
Non, je ne voulais pas dire que cette question appartenait à Meta. Je voulais dire que demander à l'équipe de l'équipe d'avoir des idées apprises lors de l'évolution de la volonté pourrait être une question sœur appropriée à celle-ci. J'ai ajouté des éclaircissements à ce sujet.
Vous avez deux options et vous pouvez les combiner très probablement:
Vous pouvez avoir un travail croisé qui exécute toutes les minutes x-minutes et exécute la base de données à la recherche de chaque utilisateur et de chèques s'ils méritent un nouveau badge. P>
Par exemple, Stackoverflow implémente ceci pour le badge de réponse agréable. Chaque fois qu'il fonctionne, il vérifie le nombre de réponses avec +10 upvotes que vous avez et voit si vous devez obtenir un autre badge. (Il voit 5 messages avec 10 upvotes et 4 badges de réponse, vous obtenez un badge). Jeff a déjà déclaré que cela signifie que si vous obtenez une réponse qui reçoit un vote de 10, puis a été évité, puis une autre post obtient 10 voix, vous ne recevrez pas de badge. p>
La deuxième option est des déclencheurs basés sur des événements. Qui sont vraiment simplement: p> Ceci peut être utilisé pour des événements que vous savez se produire. Comme le badge d'autobiographe. Les chances sont que l'utilisateur ne remplira pas son profil à moins que le bouton Soumettre soit enfoncé, le site pouvait donc simplement vérifier si l'utilisateur a rempli tout ce qui est rempli, et s'ils ont toujours besoin du badge, ils l'obtiennent. P> Le travail cron-utile doit être utilisé pour des actions constamment vérifiées. Des choses comme des objectifs quantitatifs comme visiter le site pendant 150 jours ou modifier 500 fois. P> Le déclencheur basé sur les événements devrait se produire lorsqu'un événement ne se produira que si l'utilisateur ne se produise pas une action spécifique, telle que la soumission d'une forme. P> (vous pouvez probablement utiliser soit pour presque toutes les situations. La gâchette basée sur les événements donne des commentaires plus rapides ..) P> P>
Une autre option consiste à utiliser l'API d'une société de plate-forme de gamification telle que http://actionable.com p >
Je dirais que c'était la seule vraie façon de le faire, car vous auriez besoin de pouvoir garder une trace de quelles réalisations ont déjà été réalisées.
Puisque nous parlons au niveau conceptuel, je ne pense pas que cette question ait quelque chose à voir avec MySQL ou PHP.
PHP et MySQL ont des limitations, dans le développement de jeux, j'ai un moteur qui possède un système d'événements, tout ce que j'ai à faire est d'écouter sur les réalisations pour déterminer s'il y avait une réalisation accomplie. Il est soyeux lisse et efficace mais ne peut pas être fait de manière efficace de PHP.