我正在开发基于php文本的游戏。 我在游戏中组织任务。基本上任务增加了对游戏的理解。
任务是游戏中的一组小动作。
例如:
任务描述:您需要偷自行车,修理并运送到另一个城市。
它包括3个动作。
这三个动作可以在一个不同的页面上进行。
我为TASK创建了一个表(task_id,title,description(TASK Description Above),STATUS),但我不确定如何存储和执行任务操作。
我有一个想法,使用相关表TASK_ACTIONS(task_id,action_id,action(?),done)
但我不确定以哪种形式存储动作动作(?):
检查操作的sql语句类似于以下三点。
如果以上所有标记为DONE,则将TASK STATUS标记为COMPLETED,显示下一个任务。
答案 0 :(得分:1)
这样做的便宜方式如下:
tasks
{
user_id
has_theft_bike
has_repaired_bike
...
}
然而,这不容易扩展。更正确的方法是在动作表中定义所有动作
actions // defines all possible actions (also actions not part of a task)
{
action_id
description
}
user_actions // has one record for every action a user commits
{
user_id
action_id
date // possible extra
}
tasks // all possible tasks
{
task_id
name
}
task_actions // all actions linked to a task
{
task_id
action_id
}
这样您就可以记录用户执行的每个操作。你可以做一个偷自行车动作和修理自行车动作。
现在您可以检索完成任务5所需的所有操作(偷自行车并修理它)。然后,如果所有这些操作ID都在当前用户的user_actions表中。这意味着用户已完成任务。
如果你有几个用户,那就不是你的user_actions表真的会非常快。