Architecture/model related question


#1

I’ve currently got 3 models: User, Lesson and Course

The associations are:

  • Lesson belongs_to Course

  • Course has_many Lessons

  • Course belongs_to User

  • User has_many Courses

Now I’m adding a new model for LessonCompletion, which will be
used to track which lessons the user has completed and when.

LessonCompletion belongs_to Lesson
LessonCompletion belongs_to User

User has_many LessonCompletions
Lesson has_many LessonCompletions

Now the way that this model (LessonCompletion) will be used is
primarily
on the Course show page in displaying which lessons are done.

My question is, should I add another association of LessonCompletion
belongs_to Course,
Course has_many LessonCompletions or should I just go with
Course has_many LessonCompletions, :through => :lessons ?

The reason I ask is because I’m wondering if the :through will be very
taxing on the system as it will get used a lot.