On Aug 7, 12:43am, MC [email protected] wrote:
Frederick,
I would want to be able to see what students are being taught be what
instructor. And yes I would want to be able to know what the course
the student is taking. So from my current setup are you saying I
wouldn’t get that? Or would I get that if I used a :through
association?
It depends on the reality you are modelling. At the moment, a student
belongs_to instructor, which has_many courses - how can you extract
from that which course a student on. Is it really the case that a
student always has the same instructor, no matter what combination of
courses?
I’m sort of having a tough time wrapping my head around the
associations. I read the rails guide on associations but it’s not
sticking yet. Is the whole point of associations being able to make
calls to the records because of active record’s built in
capabilities?
Using associations does get you all that, but before thinking about
that I think you need to step back and think about the data you are
trying to model and what questions you will need to be able to answer.
For example with you current setup, you can’t represent a student
having one instructor for their Spanish course and a different one for
their Russian literature (but only you can say whether or not this
restriction is ok).
To me if feels like you want a join model between courses and students
that defines which courses a student is taking and with which
instructor, but I don’t know precisely what the reality that you are
trying to model
With regard to what you mentioned about CourseDate and CourseTime and
just making them additional columns. Could I still call that
information and post it to a calendar some how?
My confusion over relationships starts making me think that I should
make everything an object class. Has anyone else felt this way? Is
there a guideline for when you make something it’s own class as
opposed to just making it a column in a table?
You haven’t said what is in those tables. If they just a simple date
and a simple time column, then i don’t think there’s any reason. If
you’re managing a more complicated schedule then it might deserve its
own table (e.g. if course date meant something like ‘tuesdays and
thursdays’). Bottom line is I would ask myself for the given situation
- what data might I be duplicating
- how does this change my ability to ask (efficiently) the questions
that I want to answer (e.g. ‘what courses are on today’ or 'when does
this course start)
If there’s no benefit to having a separate table then that suggests to
me that the things in question are more naturally just attributes.
Fred.