Database 如何根据用户进度设计游戏数据库

Database 如何根据用户进度设计游戏数据库,database,algorithm,database-design,Database,Algorithm,Database Design,我正在尝试建立一个游戏,它有几个关卡,每个关卡上有不同的任务 游戏有等级表 levels -------------- id description ... missions -------------- id level description ..... mission_parts ----------------- id mission_id description ..... 以及任务表 levels -------------- id description ... missi

我正在尝试建立一个游戏,它有几个关卡,每个关卡上有不同的任务

游戏有等级表

levels
--------------
id
description
...
missions
--------------
id
level
description
.....
mission_parts
-----------------
id
mission_id
description
.....
以及任务表

levels
--------------
id
description
...
missions
--------------
id
level
description
.....
mission_parts
-----------------
id
mission_id
description
.....
每个任务都有部分,例如用户一步一步地完成一个任务,用户可以完成任务的几个部分,然后离开游戏。所以我需要跟踪用户进度

任务部件表

levels
--------------
id
description
...
missions
--------------
id
level
description
.....
mission_parts
-----------------
id
mission_id
description
.....
我建议游戏必须有以下表格来跟踪用户进度

  • 用户级别进度
  • 用户任务进度
  • 用户任务部分进度
并检查所有时间用户进度,一旦用户完成所有任务部分-任务完成,并且一旦用户完成特定级别的所有任务,级别完成

在新登录时,它将把级别、任务和任务部分表与相同的用户表进行比较,并返回每个级别、任务和部分的用户进度

第一个问题是,它应该在每次用户希望看到他的进度时比较表,还是我应该以某种方式记录用户的进度?
第二个问题是这样存储和跟踪游戏中用户进度的好方法吗?

你是对的,如果用户可以跳过任务的一部分或一个任务,那么你应该存储用户进度。这些表格的结构可能如下:

用户\级别\进度表保存用户的已完成级别

user_level_progress
--------
user
level
user_mission_progress
--------
user
mission
status (completed, skipped)
user_mission_parts_progress
--------
user
mission_part
status (completed, skipped)
用户任务进度表保存用户跳过和完成的任务

user_level_progress
--------
user
level
user_mission_progress
--------
user
mission
status (completed, skipped)
user_mission_parts_progress
--------
user
mission_part
status (completed, skipped)
用户任务部分进度表保存用户任务的跳过部分和完成部分

user_level_progress
--------
user
level
user_mission_progress
--------
user
mission
status (completed, skipped)
user_mission_parts_progress
--------
user
mission_part
status (completed, skipped)

您可以根据这些表显示用户进度。当然,当用户完成任务时,您必须在这些表中保存已完成的级别、任务和部分任务。

是任务的一部分,并且任务是连续执行的吗?@MaximFedorov,实际上不是,用户可以跳过任务的一部分,稍后再返回。进度表有什么结构?