【问题标题】:how to save an users vote on a comment to mysql via php?如何通过php保存用户对mysql的评论投票?
【发布时间】:2010-07-26 23:15:27
【问题描述】:

如何保存用户对特定评论的投票?例如,如果有人喜欢在网站上发布的评论,他/她将单击 (+) 按钮或以其他方式单击 (-) 按钮。 我如何将此信息保存到 mysql,以便当用户返回该站点时,我可以显示他/她对评论的投票?类似于 facebook 评论之类的系统。我应该创建一个新的 mysql 表来记录它们吗?假设用户已经是注册用户。

我当前的评论表

id | date | userid | page | comment |

我期待类似的东西

$username - $date
$comment <no.of likes> likes, <no.of hates> hates.

【问题讨论】:

    标签: php mysql user-interface


    【解决方案1】:

    您描述的是多对多关系。您将需要用户和 cmets 之间的中间表,因为任何用户都可以对任何评论进行投票,并且任何评论都可以得到任何用户的投票。可能是这样的:

    user_id | comment_id | direction

    如果您不需要存储有关谁对什么进行了投票的任何数据,那么您只需在您的 cmets 表中添加一个 score 列,该列会在用户投票时增加或减少。如果您想在显示 cmet 时快速获取他们的分数,您也可以同时执行这两种操作,但保留谁投票的信息以备后用。

    编辑:

    事后考虑,您可能希望避免使用score 列。如果您不跟踪该用户已对哪些 cmets 进行了投票,您可能会遇到单个用户可以多次对评论进行投票的情况。

    【讨论】:

    • 还有其他方法吗?就像将用户 ID 和投票作为 json 字符串存储在同一个评论表中?我知道这会使情况恶化..所以按照您上面提到的方式,我怎么能加入表格并获得用户名而不是用户ID?我知道有一种方法叫join mysql,但是对于我这个学生来说真的很难理解。
    • 我不希望用户多次对评论投票,这意味着一旦他/她投票保存的投票,然后当用户返回相同的评论时,他们可以更改投票(覆盖而不是添加)
    • 如何将中间表中的 user_id 与帐户表中的用户名连接起来?
    • 没关系,只要我还能看懂……非常感谢大家
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    相关资源
    最近更新 更多