我即将在我的论坛中实现一个主题/参数列表,我想为每条消息插入一种标志,例如“已读/尚未读”,考虑我网站中的每个用户。

我认为是这样的:一个带有 watched_topicsid(INT), user(VARCHAR) 的表 topic_id(INT) 。当 user 观看页面时,我将插入(如果数据不存在)这些信息。

当另一个 user 将在主题中插入新消息时,我将从表 watched_topics 中删除所有与该 topic_id 相关的行。

这可能会带来麻烦:考虑 9000 个主题 9000 个已观看所有主题的用户 :表会很大( 9000x9000=81000000 )。

所以,我认为这不是实现这种东西的最佳策略!任何建议将不胜感激:)

干杯

最佳答案

你的建议听起来不错。我会让用户字段也是一个外键 - 它给你更多的灵活性。

您确定所有 9000 个用户都阅读了所有 9000 个主题吗?我的意思是这是现实吗?就像您说的那样,添加新消息时会删除主题条目。当这种情况发生时,另外 9000 个条目将被删除 :)

我会索引该表并采纳您的建议(更改 user_id)。如果表大小妨碍了您,您可以随时更改实现。无论如何,这很可能永远不会成为问题。

关于MySql : how can I implement a sort of "read/not read yet" topics?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4827367/

10-13 08:53