gpt4 book ai didi

cron - 徽章成就系统如 SO : Data being used + Criteria(instant awarding & cron jobs)

转载 作者:行者123 更新时间:2023-12-03 03:07:46 27 4
gpt4 key购买 nike

我一直在寻找 SO 的开源克隆,

http://github.com/cnprog/CNPROG

我不懂 Python/Django,但我仍然可以阅读正在发生的事情,

开发人员似乎只通过 cron 作业来授予徽章,奖项是通过方法颁发的,即标准的“规则”,必须满足才能获得该奖项。

this文件,即标准,

但是best-way-to-store-badge-criteria 的回答中它说不要运行这样的查询,

"select count(*) from posts where user = :user"// for every post.

这有点像 CNPROG 方法,但改为

have a simple rule that watches each post come by, and "count them", storing the rules state in the user profile.

因此,“计数”一词是否意味着最好将所有内容记录在一个表中,例如,

class UserStats

int voteUpCount
int voteDownCount
int score
int commentCount
int viewCount
int offensiveFlagCount
int imageCount
int feedbackCount
int commentEditCount
int commentDeleteCount
int questionCount
int questionEditCount
int questionDeleteCount

然后使用这些数据制定规则,对用户发布的每条评论使用简单的 if(commentCount > 10)...,然后执行 SQL 查询

如果有人可以进一步解释问题 best-way-to-store-badge-criteria 的答案,但是举一个“规则”、“标准”和数据库设计的例子

这些将与一些“每个用户操作”和 cron 作业一起使用来授予徽章

<小时/>

最佳答案

是的 - 你的直觉是正确的。这本质上就是数据库人们所说的 materialized view 。例如,要授予帖子数 > 30 的成就,请执行以下操作:

posts {
id,
user_id,
content
}

users {
user_id,
post_count,
has_thirty_posts
}

当帖子插入到 posts 表中时,将 1 添加到 users 表中的 post_count 中。如果 post_count > 30,则设置 has_thirty_posts = true

还有其他方法来存储架构。这只是一个粗略的简化,但它应该可以让您有所了解。这也称为 Denormalization (即存储冗余数据)。

关于cron - 徽章成就系统如 SO : Data being used + Criteria(instant awarding & cron jobs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2045459/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com