我即将在我的论坛中实现一个主题/参数列表,我想为每条消息插入一种标志,例如“已读/尚未读”,考虑我网站中的每个用户。
我认为是这样的:一个带有 watched_topics
和 id(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/