Try   HackMD

2023 年 06 月 - 面試時被問到 SQL 問題如何回答

@user = User.find(params[:id]) # => User Object x 1 # user has many posts @posts = @user.posts # ORM # SELECT * FROM posts WHERE user_id = ? ---> N + "1" # ... @posts.each do |post| # Iterate - Post Object x N puts post.comments.count # SELECT COUNT(*) FROM comments WHERE post_id = ? ---> "N" + 1 end
@user = User.find(params[:id]) # => User Object x 1 # user has many posts @posts = @user.posts.include(:comments) # ORM # SELECT * FROM posts WHERE user_id = ? ---> N + "1" # SELECT * FROM comments WHERE post_id IN (?, ....) ---> Cached # ... @posts.each do |post| # Iterate - Post Object x N puts post.comments.count # post.comments == Ccached end