【问题标题】:Forum design suggestions论坛设计建议
【发布时间】:2023-03-16 03:19:01
【问题描述】:

我正在用 php 编写一个论坛脚本,我正在尝试思考标记每个用户是否阅读过的主题的最佳方式。

一旦用户登录到论坛,我可以根据他上次登录时间标记已阅读或未阅读的内容,这很好,现在标记每个用户点击的每个主题的最佳方法是什么?

我正在考虑添加 cookie,但这会导致安全问题并且可能不准确,特别是如果用户从另一台机器/浏览器登录。

我还考虑为每个用户单击的每个主题添加一个特殊的数据库表,由于 CPU 使用率和数据库增长的增加,这对我来说听起来也很糟糕。

谁有更好的建议/解决方案?

谢谢。

【问题讨论】:

  • 更好的建议:不要打扰。论坛软件是一个已解决的问题,有大量现成的代码可供使用。让论坛软件在任何事情都可能发生并且确实发生的环境(网络)中稳健运行需要多年的实地曝光。
  • 告诉 Stack Overflow 团队。不过,让我们一起玩,假设他这样做是为了教育目的。

标签: database-design forum


【解决方案1】:

您可以保留一个单独的数据库表来为每个用户保存每个主题 X 的记录(如果用户已阅读)(如果用户未阅读则不记录),然后在 30 天后自动假设该主题已阅读,这使您可以修剪此表以防止过度生长。像这样保持一个单独的表格是非常标准的做法,除非这个论坛非常受欢迎(我猜总是计划受欢迎),我怀疑你会遇到空间或 CPU 限制。

例如,表topics_read 具有字段user_id、topic_id 和when。每行存储两个整数和一个日期只需几个字节。

【讨论】:

    猜你喜欢
    • 2011-01-18
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    相关资源
    最近更新 更多