gpt4 book ai didi

php - 存储用户事件? PHP、MySQL 和数据库设计

转载 作者:搜寻专家 更新时间:2023-10-30 23:19:29 24 4
gpt4 key购买 nike

好吧,用户来到我的网络应用程序并获得积分等事件,有点类似于(但不那么复杂)与这个网站。他们可以投票、评论、提交、收藏、投票评论、撰写描述等。

目前我将一个用户操作存储在一个表中,并与这样的日期相对应

Table user_actions
action_id - PK AI int
user_id - PK int
action_type - varchar(20)
date_of_action - datetime

因此,例如,如果用户出现并发表评论或对评论进行投票,那么行将看起来像这样

    action_id       = 4
user_id = 25
action_type = 'new_comment'
date_of_action = '2011-11-21 14:12:12';

action_id = 4
user_id = 25
action_type = 'user_comment_vote'
date_of_action = '2011-12-01 14:12:12';

我听到你说的很好,但不完全是,记住这些行将驻留在 user_actions 表中,该表与存储评论和用户评论投票的表不同.

那么我怎么知道什么评论链接到 user_actions 中的哪一行?

好吧,我可以将评论表中唯一的 comment_id 链接到 user_actions 表中名为 target_primary_key 的新列吗?

没有。不能那样做,因为该操作同样可以是具有复合键(双键)的 user_comment_vote

所以我剩下的想法是,我是否只在列中添加主键并用逗号分隔它们,然后让 PHP 解析它?


所以以上面的例子为例,下面的几行显示了我将如何存储目标主键

new_comment
target_primary_keys - 12 // the unique comment_id from the comments table

user_comment_vote
target_primary_keys - 22,12 // the unique comment_id from the comments table


所以基本上用户执行一个操作,user_actions 会更新,特定的 table 也会更新,但是如何在允许多个键的情况下链接两者?

有没有人有过存储用户事件的经验?

欢迎任何想法,这里没有错误的答案。

最佳答案

您不需要用户操作表。要计算“分数”,您可以对多个表运行一个查询,并将匹配评论、评分等的计数乘以一个乘数(评论 25 分,评分 10 分,...)。

为了加快页面速度,您可以将总分存储在额外的表或用户表中,并在分数发生变化时使用触发器刷新总分。

如果你想显示评分或评论的数量,你也可以这样做。

从现有表中获取详细信息,并将评论和评分的总数存储在一个额外的表中。

关于php - 存储用户事件? PHP、MySQL 和数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8363338/

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