php - Idées de conception pour le mécanisme d'invitation d'amis
滿天的星座
滿天的星座 2017-06-05 11:07:59
0
5
1064

Le site Web a besoin d'un module fonctionnel pour inviter des amis. Le processus est le suivant :

Le centre utilisateur génère un lien d'invitation pour chaque personne (A), puis après que l'invité (B) ait cliqué pour s'inscrire, l'identifiant de A est inséré sous forme de balise après le champ d'inscription de B.

Actuellement, cette méthode permet de compter la liste des amis invités par chaque personne, mais il y aura les problèmes suivants à l'avenir :

Lorsque l'invité B passe une commande pour la première fois, A recevra 10 % de la récompense en points. S'il ne s'agit pas de la première commande, il n'y aura pas de récompense
(C'est ce que je pense à ma manière stupide. Quand. chaque utilisateur passe une commande, il doit d'abord déterminer s'il existe un utilisateur supérieur A, s'il n'y a personne, passer la commande directement. S'il y a un utilisateur supérieur A, il doit juger à nouveau s'il doit passer une commande pour la première fois. , puis ajoutez des points au supérieur, et en même temps passez une commande pour l'utilisateur B)

Ensuite, le problème est que ma méthode stupide doit juger la première commande pour chaque commande passée par chaque utilisateur. Je pense que c'est trop lourd et sujet à des problèmes. Je me demande si le maître a des idées d'optimisation

.
滿天的星座
滿天的星座

répondre à tous(5)
世界只因有你

Je pense que cela peut être fait comme ceci :

  1. Relation amicale : Vous pouvez créer une table séparée, Table des relations amicales, qui stocke deux champs uid (ID utilisateur), contact_uid (ID d'ami associé)好友关系表,里面存两个字段 uid(用户ID), contact_uid(关联好友ID)

  2. 下单是否是首次并增加推荐好友积分操作:可以在用户相关表增加个是否下过单的字段(楼上也有提过),默认为0为没有下过单,每次下单都会先查询这个字段,如果是1

🎜Que ce soit la première fois que vous passez une commande et ajoutez des points pour recommander des amis🎜 : Vous pouvez ajouter un champ au tableau relatif à l'utilisateur si vous avez passé une commande (également mentionné ci-dessus), la valeur par défaut est 0, ce qui signifie vous n'avez pas passé de commande, chaque fois que vous passez une commande. Ce champ sera interrogé en premier. S'il est 1, la logique de commande normale sera suivie. S'il est 0, cela signifie que la commande est passée. n'a jamais été placé, puis la logique que vous utiliserez sera exécutée, c'est-à-dire si l'utilisateur a des recommandateurs. Traitement des points croissants pour les recommandateurs🎜🎜. 🎜
伊谢尔伦

Lorsqu'un utilisateur passe une commande, il déterminera d'abord s'il existe un utilisateur supérieur A. Dans le cas contraire, il passera la commande directement

Ne faites pas cela, cela affectera les performances.

Les points statistiques sont calculés chaque matin.

某草草

Vous pouvez proposer une table. Cette table a l'identifiant, l'identifiant de B, l'identifiant de C et le champ buystate. La valeur de buystate peut être 1 ou 0. 0 signifie que ce n'est pas le premier achat, et 1 signifie que c'est le premier achat.

漂亮男人

Ajoutez un champ directement, que vous ayez déjà passé une commande, la valeur par défaut est 0. Quoi qu'il en soit, les informations de l'utilisateur seront obtenues lors de la passation d'une commande. D'ailleurs, vous pouvez juger si elle est égale à 0 pour savoir si c'est le cas. la première commande. Au niveau des points, si vous êtes soucieux des performances, vous pouvez envisager de les sauvegarder dans redis et de modifier la base de données à heure fixe.

过去多啦不再A梦

Je pense que l'idée est bonne
Une chose à mentionner, les points de récompense devraient être attribués une fois la commande terminée, et non lorsque la commande est passée.
Ajoutez simplement un champ au tableau utilisateur pour indiquer le nombre de commandes historiques terminées. Si la demande change plus tard, il sera facile de restituer des points les N premières fois. Et généralement, le processus de passation ou de finalisation d'une commande nécessite d'interroger la table utilisateur, ce qui n'est pas compliqué.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal