我需要处理每个用户的帖子的已读/未读状态。现在写我正在使用非规范化列来存储逗号分隔的 user_ids。由于它是文本列,因此选择查询的性能会降低。
现在我想为所有用户分配一个常量,比如用户 A - 1、用户 B-2、用户 C-4 和用户 D-8(按位),并将其组合存储在一个整数列中。所以当用户 A ,C 读取整数列的值将是 (1+4) 5。并在条件中使用按位运算符查询已读/未读帖子。问题是没有。我可以存储为组合的用户数被限制在一列中说 62 个用户的状态。如果我必须进一步扩展,我可能会添加另一个 BIGINT 列来存储其他用户。
存储该信息的最佳方式是什么。以下是我需要执行的操作。
- 当发布新回复时,我必须将值更新为 0(以使每个回复都未读)。
- 当用户阅读帖子时更新列中的状态。
- 选择用户的所有未读帖子。
编辑:我试图间接解决第三个行动。我在选择列列表中添加该整数列,并在应用程序代码中查找用户的读取状态,而不是添加为 mysql 条件。无论如何,这不是解决方案。我还需要一个好的。