我有一张
posts
桌子和 users
桌子。 posts
表有一列 author_id
(外键)。这显然是一对多关系的示例。我想要获取特定用户(例如 ID 为 9 的用户)撰写的所有帖子。
这是我的(天真)方法:
SELECT * FROM posts WHERE author_id = 9;
我的天真的方法的问题是,我认为对于具有更多行的较大表来说非常昂贵。想象一下,如果我必须浏览社交媒体平台上发布的所有评论才能获得该帖子的所有评论。这没有道理!
如果我可以通过访问
users
表来访问与特定用户相关的所有帖子,那就更好了。有什么办法可以做到这一点吗?如果没有,那只是一个想法,那么,有没有更好的方法来解决我的问题?
我使用Sqlite3,但问题并不特定于某个RDBMS,尽管我仍然想要通用和主流的SQL,任何有关PL/SQL或其他更激进的SQL的答案对我都没有帮助。
我相信您应该在
author_id
上应用索引,以使其更快且更便宜,我认为其他方法会更昂贵且更复杂,因此根据情况,最好是在此列上应用索引。谢谢