I''m trying to migrate a PHP application to Rails, and I want to do  
this right. I''ve got a data model that expresses a party''s
type,
their relationship, and the length of that relationship in several  
tables. How much coercion will ActiveRecord need to make this work?  
Is there a simpler (better) way of modeling these relationships? This  
is what I have in the model:
parties: { id name }
party_relationships: { id party_id_from party_id_to from_date  
thru_date party_role_type_id_from party_role_type_id_to }
party_role_types: { id name }
Let''s say we have a party called HSI, and a another called Knotty.  
Knotty is a customer of HSI, but at the same time, in some  
circumstances, HSI is also a customer of Knotty. In the application  
I''m modeling, this happens a lot. This is what the data looks like
like:
parties:
{ 1 ''HSI'' }
{ 2 ''Knotty'' }
party_role_types:
{ 1 ''Customer'' }
{ 2 ''Vendor'' }
party_relationships (null means ongoing):
{ 1 2 1 ''2005-01-01'' ''2005-08-01'' 2 1 }
{ 2 1 2 ''2005-06-01'' null 1 2 }
Here''s the party_relationships table with real names instead of keys  
for clarity:
{ 1 ''Knotty'' ''HSI''
''2005-01-01'' ''2005-08-01''
''Vendor'' ''Customer'' }
{ 2 ''HSI'' ''Knotty''
''2005-06-01'' null ''Customer''
''Vendor'' }
The date ranges are important, some of the reports that come out of  
the app depend on them. So how do I make this work with ActiveRecord?
class Party < ActiveRecord::Base
   has_and_belongs_to_many :party_relationships
   # ...
end
class PartyRoleType
   belongs_to_many :party_relationships
   # ...
end
class PartyRelationships
   has_and_belongs_to_many :parties
   has_and_belongs_to_many :party_relationships
   # ...
end
Did I get that right? Will this work well? How can I make all of this  
better?
Thanks!
Beau