I would not interfere with denormalization.
If you need to look at the calculations, you can check counter_cache on the relation to save the request for this.
Do you have the correct indexes for your foreign keys? If so, pulling data from one additional connection should not be as large as it happens, but you may need to reduce it to SQL to get all the results in a single query without repeating .serials:
User.serials.collect { |s| s.episodes }.uniq
source share