如何为每个用户构建未读项目警报的数据库

2024-04-12

我只是有一个一般的数据库理论问题。我需要制作类似于显示用户已查看或未查看的帖子/项目(例如在论坛中)或未读电子邮件的内容。我所拥有的是多个用户可以查看的帖子,但需要按实际查看过的用户分开。因此,如果用户 A 浏览了帖子 1,则不会再显示帖子 1 是要查看的新项目,但对于用户 B 来说,它仍然会显示帖子 1 是要查看的新项目。

我搜索了其他想法,其中之一是获取用户上次登录时间的时间戳,但实际上我需要跟踪他们看到的帖子,而不是自上次登录以来发生的帖子。

如果可能的话,我想要一个 MySQL 数据库解决方案,但如果这是必须的,我愿意接受 cookie。我可以自己做这件事并弄清楚,但我很感激任何有关如何正确构建表以使其最有效的建议。此外,带宽和存储也不是问题。


在审查的同时phpBB 的相关架构 https://github.com/phpbb/phpbb3/blob/develop/phpBB/install/schemas/mysql_41_schema.sql#L819,我发现了以下内容:

# Table: 'phpbb_topics_track'
CREATE TABLE phpbb_topics_track (
    user_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
    topic_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
    forum_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
    mark_time int(11) UNSIGNED DEFAULT '0' NOT NULL,
    PRIMARY KEY (user_id, topic_id),
    KEY topic_id (topic_id),
    KEY forum_id (forum_id)
) CHARACTER SET `utf8` COLLATE `utf8_bin`;

And:

# Table: 'phpbb_forums_track'
CREATE TABLE phpbb_forums_track (
    user_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
    forum_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
    mark_time int(11) UNSIGNED DEFAULT '0' NOT NULL,
    PRIMARY KEY (user_id, forum_id)
) CHARACTER SET `utf8` COLLATE `utf8_bin`;

Then I 在他们的 wiki 中查看 http://wiki.phpbb.com/Table.phpbb_topics_track:

该表保存访问过的主题的记录,以便将它们标记为 已读或未读。我们结合使用 mark_time 时间戳 主题 x 的最后一篇文章的时间戳,以了解主题 x 是否被阅读。

为了准确判断某个主题是否被阅读,还必须 检查 phpbb_forums_track。

因此,本质上他们有一个查找表来存储与用户查看主题(线程)相关的数据,然后对照论坛视图表中的时间戳进行检查,以确定该主题是否已被用户查看。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为每个用户构建未读项目警报的数据库 的相关文章

  • 将一维数组转换为二维数组并加入 PHP [重复]

    这个问题在这里已经有答案了 我有这个一维数组 array1 Array coupon code gt GTY777R coupon description gt Credito 5 USD array2 二维数组 Array 0 gt Ar
  • PHP 文件大小报告旧大小

    以下代码是我编写的 PHP Web 服务的一部分 它需要一些上传的 Base64 数据 对其进行解码 然后将其附加到文件中 这一切都很好 问题是 当我在追加操作之后读取文件大小时 我得到了追加操作之前文件的大小 fileOut fopen
  • 使用 Ruby on Rails 索引多列

    我在 Mysql 数据库中有一个表 我想在其上使用多列索引 如何在不使用 mysql 控制台的情况下在 Rails 中执行此操作 在迁移定义中 您可以这样做 add index table name column1 column2
  • 如何保护Web应用程序免受cookie窃取攻击?

    我的网络应用程序的身份验证机制目前非常简单 当用户登录时 网站会发回一个存储的会话 cookie 使用localStorage 在用户的浏览器上 但是 此 cookie 很容易被窃取并用于从另一台计算机重播会话 我注意到其他网站 例如 Gm
  • Codeigniter $this->db->reconnect();用法

    I m not自动加载数据库 因为我的应用程序的大多数页面don t需要数据库处理 否则整个事情会变慢 我想要做的是 当数据库已经存在时 不要建立与数据库的新连接 而是使用它而不是打扰服务器数据库 那么我该如何实施 this gt db g
  • PHP中如何处理大于16位的值?

    我正在使用 SOAPclient 调用一个方法 该方法 远程外部 SOAP Web 服务 向我返回一个 19 位数字 我无法控制退回的内容 当我打印这个数字的值时 只有前 16 位数字是准确的 我尝试过类型转换 GMP 等 但是当 php
  • 改进将字符串转换为可读的 url

    以下函数重写包含各种字符的新闻和产品标题的 url 我希望创建的字符串仅包含字母数字值和 但没有结尾 或空格 也没有重复的 下面的函数工作正常 但我想知道是否有任何方法可以将其编写得更简单或更有效 function urlName stri
  • 刷新页面后保留输入值

    我有一个带有输入字段的表单 该输入包含一个下拉菜单 从数据库中读取信息 如果用户输入值 并且当他到达下拉菜单时 他没有找到他想要的内容 他会转到另一个页面将此信息添加到下拉菜单 然后转到第一页继续输入信息 如果他转到另一个页面向下拉菜单添加
  • SMTP:无法连接套接字:无法找到套接字传输“ssl”

    我一直在尝试在 WAMP 上使用 Pear 发送电子邮件通过 GMail 花了几个小时将其全部设置并找出我遇到的所有错误后 我以为我已经很接近了 直到我开始收到此错误 Failed to connect to ssl smtp gmail
  • 为什么使用 Response 设置后,Request 中的 Cookie 立即可用?

    在页面加载中 如果您立即在下一行中执行 Response Cookies Add 您可以通过 Request Cookies 访问该 cookie 我知道在幕后 cookie 是由 net 添加到 Request Cookies 中的 但原
  • 使用 Python 2.7 和 MySQLdb 将二进制数据插入 MySQL 中的 blob 列时如何避免编码警告

    我在将二进制数据插入到longblob使用 Python 2 7 中的 MySQLdb 在 MySQL 中的列 但我收到一个编码警告 我不知道如何解决 test py 11 Warning Invalid utf8 character st
  • Mysqli get_result替代方案

    我刚刚将所有 sql 查询更改为使用 mysqli 准备好的语句 为了加快这个过程 我创建了一个函数 称为performQuery 取代mysql query 它需要传入查询 绑定 如 sdss 和变量 然后执行所有准备好的语句 这意味着更
  • 在 OS X 10.7 中找不到 Mysql 命令

    我无法让我的 mysql 在 os x 10 7 上启动 它位于 usr local mysql bin mysql 当我输入时 我得到命令未找到mysql version在终端中 我试过这个无法从 mac 命令行访问 mysql http
  • 使用 Hibernate 和 Apache DBCP 的 MySQL 连接池问题

    看来我的应用程序有问题 当应用程序在启动后闲置很长时间 我不确定确切的时间 时 我会在日志中收到以下错误消息 我使用 Spring Hibernate MySQL 和 ApacheDBCP 进行连接池 ERROR org hibernate
  • 将 RequestBody json 转换为对象 - Spring Boot

    我是 java 开发的初学者 但之前有 PHP 和 Python 等编程语言的经验 对于如何进行 Spring Boot 的开发几乎没有什么困惑 我正在开发一个rest API 它有以下请求 key value key1 value1 pl
  • 解码Json数据数组并插入到mysql

    这个问题可能已经在这里问过 但我尝试搜索找不到它 我有如下 Json 数据 CityInfo CityCode 5599 Name DRUSKININKAI CityCode 2003 Name KAUNAS CityCode 2573 N
  • 检查外部图像是否存在的正确 PHP 方法?

    我知道至少有 10 个相同的问题有答案 但似乎没有一个对我来说完美无缺 我正在尝试检查内部或外部图像是否存在 图像 URL 是否有效 fopen url r 失败 除非我使用 fopen Warning fopen http example
  • MySql如何通过过滤多列来限制多个数字?

    我想从数据库中获取 4 个不同类别的 50 个问题 我想要 4 个不同类别中每个类别的不同数量的问题 我的结果集必须包含第一类 12 个问题 第二类 20 个问题 第三类 10 个问题和第四类 8 个问题 我的问题表中总共有 50 个问题
  • 服务器端文件验证在 Yii.2.0 中不起作用

    Is the FileValidatorYii2 中的类只支持客户端验证 我使用代码编写了文件上传系统 在模型中 public function rules return allAllowedFileType safe allAllowed
  • 如何使用 monolog ElasticSearchHandler 登录 Laravel 应用程序

    Monolog 包含弹性搜索处理程序和格式化程序 但它作为自定义通道对 Laravel 的实现并不像 Laravel 文档网站上描述的那么简单 以下是如何执行此操作的简要分步说明 为您的弹性搜索日志记录创建一个配置文件 config ela

随机推荐

  • 在不同字符出现时将字符串转换为数组

    考虑我有这个字符串 aaaabbbaaaaaabbbb 我想将其转换为数组 以便得到以下结果 array aaaa bbb aaaaaa bbbb 如何在 PHP 中解决这个问题 PHP代码演示 https eval in 760336 R
  • 如何使用 BigQuery 提取 JSON 对象中的所有键

    BigQuery 具有在实时交互式查询中解析 JSON 的功能 只需将 JSON 编码的对象存储为字符串 然后使用 JSON EXTRACT SCALAR 等函数进行实时查询 但是 我无法找到一种方法来发现这些对象中的所有键 属性 我可以为
  • template 和 templateUrl Angularjs 之间的性能差异有多大

    template 和 templateUrl 之间的性能差异有多大 目前我在所有指令中都使用模板 但因为我痴迷于性能 所以我想现在使用模板 这样更快 如果我使用 templateUrl templateCache 这比仅在指令中使用模板更快
  • 当从“using”块中调用“return”时会发生什么? [复制]

    这个问题在这里已经有答案了 如果我有一个带有这样的 using 块的方法 public IEnumerable
  • 是否可以使 java.lang.invoke.MethodHandle 与直接调用一样快?

    我正在比较性能MethodHandle invoke以及直接静态方法调用 这是静态方法 public class IntSum public static int sum int a int b return a b 这是我的基准 Stat
  • Groovy/grails 如何判断一个数据类型?

    确定 groovy 中数据类型的最佳方法是什么 如果是日期等 我想以不同的方式格式化输出 要确定对象的类 只需调用 someObject getClass 您可以将其缩写为someObject class在多数情况下 但是 如果您在Map它
  • qFuzzyCompare 在 Qt 中如何工作

    有什么区别 if a b and if qFuzzyCompare a b 假设变量 a 和 b 是 a 1234 5678 b 1234 5678 注意 我问这个问题是因为我在比较 Qt 中的双打时遇到困难 我想了解如何qFuzzyCom
  • 使用 javascript api 显示来自 facebook 的照片?

    我想使用 javascript api 在我的网页上显示我的 Facebook 相册之一中的照片 我可以使用以下代码读取相册名称 但如何显示其中一张相册的照片 FB api myfacebookid albums function resp
  • 应用程序在 4.0 上崩溃,但在 5.0 上不崩溃

    我试图修复一个奇怪的错误 使用 iOS 4 的用户甚至无法在更新后启动我的应用程序 然后崩溃 iOS 5 设备运行良好 我在上次更新中添加的内容是块 但是 block 应该可以在 ios4 上使用 对吧 iOS 4 3 模拟器运行良好 但
  • EMR 如何处理 s3 存储桶的输入和输出?

    我正在启动一个 EMR 集群 并且已经创建了指定的存储桶在 EMR 文档中 http docs aws amazon com emr latest ManagementGuide emr plan output html 但是我应该如何上传
  • PHP MySQL - 每 6 行插入一个 div?

    PHP
  • jquery ui 自动完成:计数结果

    我想知道是否有一种方法可以计算当您在文本框中键入内容时显示的结果数 计算 li 元素的工作原理 但我敢打赌有一个更聪明的方法 谢谢 我认为直接使用 JQueryUI Events 是不可能的 我一直在寻找方法但没有成功 所有关联的事件仅返回
  • 为什么 不扩展以适应其内容?

    我有一个延伸到屏幕边缘的桌子 但主体仅与屏幕一样宽 导致桌子溢出 Demo http jsfiddle net 6REkj http jsfiddle net 6REkj table tr td test td td test td td
  • 没有 JavaScript 的默认 html 表单焦点

    是否可以在不使用 JavaScript 的情况下在 HTML 表单上设置默认输入焦点 例如
  • 什么时候使用内联函数,什么时候不使用它? [复制]

    这个问题在这里已经有答案了 我知道内联是对编译器的提示或请求 用于避免函数调用开销 那么 根据什么可以确定一个函数是否适合内联呢 在什么情况下应该避免内联 避免函数调用的成本只是故事的一半 do use inline代替 define 很小
  • 如何处理微服务架构中的共享模型

    我的目标是创建一个架构 其中服务应该能够彼此独立部署并且完全自治 但是当您有 2 个服务从数据库读取相同对象类型时该怎么办 就我而言 我有一个套接字服务器 微服务 1 和一个 http 服务器 微服务 2 我的用户使用 http 服务器创建
  • JS Maps v3:带有用户个人资料图片的自定义标记

    两天以来 我一直在努力解决一些我认为很简单的事情 在地图上 我必须为每个用户显示一个标记 其中包含用户 FB 个人资料图片 我想知道如何才能得到与此类似的结果 我所尝试的确实很hackish 我把FB图片作为标记图标 我在标记的标签上放置了
  • intellij idea看不到java 9标准类

    我有一个maven使用的项目Java 9 它导入到IntelliJ IDEA 2017 2 3 Community 但由于某种原因它找不到标准的java类 例如String or Float 例如 当我尝试Setup Project JDK
  • 对象到数组(数组的数组)

    我正在尝试使用函数将对象文字转换为数组数组 使用我拥有的两个示例对象 我正在寻找的最终结果将是 ugh grr foo bar blah 138 from obj1 shambala walawala foofighter Barstool
  • 如何为每个用户构建未读项目警报的数据库

    我只是有一个一般的数据库理论问题 我需要制作类似于显示用户已查看或未查看的帖子 项目 例如在论坛中 或未读电子邮件的内容 我所拥有的是多个用户可以查看的帖子 但需要按实际查看过的用户分开 因此 如果用户 A 浏览了帖子 1 则不会再显示帖子