【问题标题】:How to store values for each user for each server如何为每个服务器的每个用户存储值
【发布时间】:2019-07-09 21:10:31
【问题描述】:

这将是一个更抽象的问题,因为我无法提供与此问题相关的代码。我对使用数据库有点陌生,所以我对传统设计还不熟悉。

我有这些表:usersservers

我目前有一种方法可以通过增加users 表中的score 字段来为每个用户评分。但是,这会产生全局分数,这很好,但我也希望能够跟踪特定于服务器的分数。

为他们使用的每个server 保持user 的分数的最佳方法是什么?

【问题讨论】:

  • 你可以有一个表scores(userid, serverid, score)
  • @PatrickHaugh 感谢您的想法。我试试看
  • 但是为了保证正确的规范化设计,如果你创建这样一个新的score表,你应该消除users表中的分数列。不要将总数存储在users 表中。要获得总体总分,您需要进行查询以汇总 scores 表中的所有分数。

标签: python-3.x sqlite discord.py


【解决方案1】:

要跟踪特定服务器的分数,您只需使用 guild.id 添加一个带有服务器 ID 的表。

【讨论】:

    【解决方案2】:

    你可以有 User(user.id) |服务器(guild.id) |分数

    然后要跟踪服务器分数,找到该服务器的所有记录并将分数添加到全局变量中。

    这是一个伪代码/python中的例子

    total = 0
    for x in Server:
        total += x[score]
    

    【讨论】:

      猜你喜欢
      • 2014-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 2018-07-24
      相关资源
      最近更新 更多