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

Database design 如何设计逻辑来存储为站点用户分配徽章和信誉点的规则,database-design,badge,Database Design,Badge,在我当前的web应用程序中,我必须创建一个类似于这样的“信誉点和徽章引擎”。该系统包含许多规则,每个规则都与一些预定义的用户活动(如查看问题、投票问题等)关联 我试图找出解决方案: 将所有规则存储在数据库表中(几乎每个规则都包含多个条件)。我们可以这样做吗 将每个用户操作与数据库表中保存的规则相匹配,并分配关联的信誉点和徽章。 检查用户是否已获得规则中定义的阈值奖励(例如未获得投票数、视图数) 执行一些规则中定义的特定操作,如升级用户、通知用户、禁止用户 为应用程序管理员提供一个UI,以管理

在我当前的web应用程序中,我必须创建一个类似于这样的“信誉点和徽章引擎”。该系统包含许多规则,每个规则都与一些预定义的用户活动(如查看问题、投票问题等)关联

我试图找出解决方案:

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

  • 如有任何提示,我们将不胜感激。

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

    如果这是您真正想要做的,一种方法是在列中定义变量(如视图、投票)。您分配的徽章或声誉点的输出也可以是列,但可以是其他列的功能。 所以这个表看起来像:
    badgeId\ubadgeName\u视图\u投票
    1银 2黄金黄金黄金黄金黄金黄金黄金黄金黄金黄金黄金