如何设计逻辑来存储为网站用户分配徽章和信誉点的规则

时间:2010-04-13 13:45:56

标签: database-design badge

在我目前的网络应用程序中,我必须创建一个“声望点和徽章引擎”,有点类似于SO。该系统包含许多规则,每个规则都与一些预定义的用户活动相关联(如查看问题,投票问题等)。

我想要找出解决方案:

  1. 将所有规则存储在数据库表中(几乎每个规则都包含多个条件)。我们可以这样做吗?
  2. 将每个用户操作与db表中保存的规则相匹配,并分配关联的信誉点和徽章。
    • 检查用户是否已获得规则中定义的阈值(例如,不是投票,视图)的奖励。
    • 执行某些操作,例如提升用户,通知用户,禁止用户在少数规则中定义。
  3. 为应用程序的管理员提供UI以在应用程序中管理(添加新/编辑/删除)规则。
  4. 任何提示都会受到赞赏吗?

1 个答案:

答案 0 :(得分:1)

数据库似乎不是此要求的合适工具。好像你需要在应用层实现这样的逻辑。当然,某些参数值可以来自配置文件。

如果这是你真正想要做的事情,那就是在列中定义变量(例如视图,投票)。您的徽章分配的输出或信誉点也可以是列,但其他列的功能。 所以表格看起来像:
badgeId_的 _ badgeName _ 视图 __
1
_ ____ _ ____ 10 < / EM> <强> _ ___ 2
2
_ ____ _ __ _ < /强> 100 _ __ _10