我需要处理每个用户的帖子的读/未读状态。现在写,我正在使用一个非规范化列来存储逗号分隔的user_ids。由于它是文本列,select查询的性能会降低。
现在,我想为所有用户指定一个常量,例如用户A - 1、用户B-2、用户C-4和用户D-8 (按位排列),并将其组合存储在整数column.So中,当用户A、C读取整数列的值时为(1+4) 5。并在条件中使用按位运算符查询读/未读的帖子。问题是不行。对于我可以作为组合存储的用户,比如62名用户在一列中的状态是有限制的。如果我必须进一步扩展,我可能会添加另一个BIGINT列来存储其他用户。
怎样才能最好地存储这些信息。以下是我需要做的行动。
当发布新的回复时,我必须将值更新为0(为每个回复未读)。当用户读取帖子时,
编辑:我试图间接地解决第三次行动。我在select列列表中添加了整数列,并在应用程序代码中查找用户的读状态,而不是作为mysql标准添加。无论如何,这不是一个解决办法。我还需要一个好的。
发布于 2011-07-05 12:35:08
我会这样做,创建一个这样的表格:
CREATE TABLE views(
user_id bigint not null,
post_id bigint not null,
primary key(user_id,post_id
)然后只需检查是否存在带有用户id和post id的记录。您也可以使用它来计算视图的数量。
https://stackoverflow.com/questions/6582536
复制相似问题