always completely normalize your datamodel?

If you put the primary key of table 1 also in table 3, your
associations become less useful, perhaps useless. Fortunately
'has_many :through' gives you what you want without messing up your
associations.

ModelA
  has_many :model_bs
  has_many :modelcs, :through :model_b

ModelB
  belongs_to :model_a
  has_many :model_cs

ModelC
  belongs_to :model_b

This way you can refer to ModelA.model_cs directly, and Rails will do
the work of putting the right information into the SQL call.

--f