建模对记录的访问限制

时间:2012-11-27 17:37:48

标签: design-patterns database-design

寻找数据设计专家的一些集体智慧......

我正在编写一个基于网络的游戏(基本上是一个网络应用程序)。在授予/拒绝成就之前,游戏动态需要访问检查。

我的游戏需要精确控制谁/何时可以获得某些成就。这些成就要求各不相同,可以是以下任何一种的组合:

  • 用户必须查看某些内容(有一个存储此访问信息的表格)
  • 用户必须等到授予访问权限(例如,帐户创建后2周可以访问记录)
  • 用户必须已对事件做出回应(例如消息)
  • 用户必须回答了一个问题(例如游戏内投票)

但是我不能对这些进行硬编码,因为游戏允许为每个游戏大师创建自定义“宇宙”。因此,每个游戏大师应该能够创建/改变在他/她的“宇宙”中授予成就的方式。

我很难想出一个数据库设计,可以将这些限制存储到成就记录中。存储这种信息有什么好的通用设计模式吗?任何有用的书籍,网站?

欢迎任何想法,建议。

PS。我已经尝试了Google-ing,但返回的大部分内容都是关于如何控制对数据库的访问,而不是如何设计存储此信息的表。

1 个答案:

答案 0 :(得分:0)

您正在做的是建模状态。建模状态的最常用方法是使用状态转换表。

            View something | Wait     | Respond | Answer
            ----------------------------------------
User 1        view action  |          | resp act|
User 2                     | wait act |         |
User 3                     |          |         | answer act

等等。

编辑添加:该表仅保存状态信息。您的代码必须知道如何设置状态表以及完成状态或状态组合时的操作。

相关问题