-1

我将用户 ID 值存储在由 | 分隔的表字段中 (user_id1|user_id2|user_id3|user_id17)。

用户 ID 将在某些时候从该字段中添加和删除。

如何检查当前用户 ID 是否存在于字段中或不使用查询?它当然需要完全匹配。无法查找user_id1和查找user_id17

我知道我可以使用 SELECT 查询,分解字段,然后使用,in_array但如果有办法使用查询来做到这一点,那就更好了。

我想我会解释一下我在做什么:我为一个小型私人网站(7 个用户)创建了一个论坛,但对它进行了更大规模的编码。

我的表结构很好:forum_categories、forum_topics、forum_posts。在表之间使用外键进行删除和更新查询。

我正在寻求帮助的是将每个用户的主题标记为未读。我可以使用 topic_id 和 user_id 创建一个新表,每个表都是一个新行,但这对于很多用户和主题来说并不好。

如果有人有更好的解决方案,我完全赞成。或者可以向我证明每个 user_id 1 行是最好的方法,那么我将非常愿意这样做。

4

1 回答 1

1

我认为您想跟踪已读消息,而不是相反。如果您跟踪未读消息,则每次添加用户时,您都必须将该用户添加到每个主题“未读列表”中。

我按照我的评论建议查看了 SMF。他们使用单独的表格来跟踪已读消息。

一张简单的桌子,可以容纳user_id并且topic_id是您需要的。当用户阅读主题时,请确保该用户的表中有一行。

使用单独表格的另一个原因。查询数据库中的 2 个 int 值会比使用LIKE %语句更快。

于 2013-03-10T18:19:00.817 回答