从任务DB设计中获得xp点

时间:2016-07-23 00:37:14

标签: mysql database-design scheduled-tasks taskscheduler

我正在努力建立游戏化Q& A平台,用户可以通过该平台完成系统提供的某些任务,从而获得xp并升级。

要求

  • 当用户升级时,必须为此用户提供新任务,并且用户获得xp以完成每个给定任务。
  • 如果用户升级并且仍然具有上一级别的某些任务,则用户可以使用新任务执行上游任务。

我的Db设计

任务

id | xp | level

id:任务ID

xp:xp金额

级别:显示此任务的下限

user_tasks

user_id | task_id | compeleted | created_at

通过这种设计,我可以处理用户拥有或将拥有的任务。

问题

如果完成与否,我如何检查任务? 让我们说一个任务是"提出5个问题并获得50 xp"。我该怎么检查?这只是一个例子。我需要一个动态数据库设计,我无法创建它。游戏特别是MMORG游戏如何处理这种侮辱?

感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

让我们说

  • 每个用户都有很多任务(已完成/未完成)。
  • 单个任务有Xp(金额)。
  • 任务有task_details

现在 (例如)

if xp_of_user > 10 then user_level = 1, 
if xp_of_user > 20 then user_level = 2, 

等等

(或您决定的任何标准。)

提出5个问题以获得50 xp

你现在需要考虑任务。假设回答5个问题是一个价值50 xp的单个任务。您可以定义task_definition表来定义您的任务规范,例如5个问题,观看2个视频,运行调查表格或任何。

如果完成与否,我如何检查任务?

您已经创建了一个完整的(布尔)字段,可以帮助您完成此操作。如果您询问如何知道用户是否已回答所有问题?然后必须通过您提出问题的特定形式或地点来完成。该表单或流程将负责更新您的任务表。