如何为用户喜欢的主题设置表格?我有一个主题表和一个用户表(更实际,但针对此处的帖子进行了简化)。由于用户生成的主题数量不断增加,我如何允许用户喜欢页面?我会将主题的 id 放入用户表中,还是将用户的 id 放入主题表中,或者创建一个新的喜欢表?我看到的问题是主题的数量可能(可能)非常大。我可以使用什么来创建一个允许用户 ID 和主题 ID 之间存在关系的系统?
最佳答案
您可以做的是“多对多”表结构
- 唯一的自动递增 ID -
UINT (10) AUTO_INCRMENT
- 包含用户 ID 的字段 -
UINT (10)
(或与您的主user_id
字段匹配的内容) - 包含“喜欢的”主题 ID 的字段 -
UINT (10)
(或与您的主topic_id
字段匹配的内容)
user_id
和 topic_id
字段都需要是唯一的。这意味着每个用户只能有一个特定的行。这可以确保(在数据库方面)不允许用户多次喜欢某个主题。
获取用户喜欢的主题将如下所示 -
SELECT * FROM user_likes` WHERE `user_id`=USER_ID
获取每个点赞的用户看起来像这样 -
从用户喜欢中选择 *WHERE
topic_id`=TOPIC_ID
正如其他人在他们的回答中所说的以及@trevor在下面的评论中 -
Don't forget to add an index on the userid to support retrieval of user liked topics and a separate index on topic is to support the topics per user query - without these, the queries will get slower as more data is added over time.
关于php - MySQL 表用于保存用户喜欢的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11704582/