目前,我的网站有一个邀请系统,可为用户发送的每个邀请生成唯一代码。这是每个邀请的唯一代码(不是每个用户)。
我想邀请一个激励促销活动(类似于groupon,当一个人邀请朋友,而该朋友完成一笔交易,然后邀请一个人获得信用)。
如何修改我当前正在工作的邀请系统,以便最小化修改?目前在我的邀请系统中,没有跟踪系统。它只跟踪用户发送的邀请数量,因此总体而言我可以看到所有用户发送的注册数量和邀请数量的比率。
感谢。
答案 0 :(得分:3)
由于你没有发布任何代码,并且在没有你给我写一张大支票的情况下我必须有一个上限,这必须是一般建议。但如果你一般都知道自己在做什么,那就足够了:
您需要两个数据库表;其中一个你应该已经拥有某种形式。索引等性能优化我不会在这里讨论太多,但你需要它们。
您应该拥有的是invites
表,用于将用户映射到其邀请码。它应至少包含以下字段:
invite_id
一个唯一的自动递增主键;这仅在您的应用程序内部使用,并且永远不会公开user_id
这是您users
表invite_code
这是您向用户发出的实际邀请代码您需要创建的新表格,我们称之为invites_friends
地图邀请给朋友:
invites_friends_id
一个唯一的自动递增主键;这仅在您的应用程序内部使用,并且永远不会公开invite_id
这是您invites
表friend_id
这是您users
表中的外键,用于标识新注册的用户goal_complete
这是一个布尔值,默认为false,当新朋友完成他们的交易而你归功于推荐用户时,你将其设置为true;稍后您应该将此数据移动到另一个表中,其中包含额外的字段,例如交易ID或日期,以及您是否已经发放信用额度,特别是如果您最终有多个目标必须记入引荐用户。这应该以合理的形式存储您的数据;您只需要几个SQL查询,而不是您需要的所有报告。 (学习加入;你在这里需要它们。)
您的作业是设计一个表格,其中存储了您可能会为引荐用户提供信用的多个目标,以及一个将目标完成情况映射到邀请的关系表,以便您可以跟踪哪些用户获得信用以及您是否已将其归功于。它们的工作方式与上表非常相似。互联网上有成千上万的关于此的教程,所以选择一些可能的最爱并享受。