HABTM question

is it possible you are describing a has-many relationship and not a has-and-belongs-to-many relationship?

anyway, for a habtm relationship, i think the convention would be to not hold any of the data about states in the address table. instead the join table contains info about the addresses table and states table. then rails knows what you want to do when you tell it to use an habtm relationship.

if you're dealing with a legacy system:

class State < ActiveRecord::Base   set_primary_key "statecode"   has and belongs_to_many :addresses, :foreign_key => "statecode" end

class Address < ActiveRecord::Base   has_and_belongs_to_many :states, :association_foreign_key => "statecode" end

where your states table is:

statecode (PK) name

and your join table, addresses_states, is

statecode address_id

if you are designing from scratch, just use an id column in the states table and do away with all the extra work above.

the argument is that any column that carries a meaning, no matter if it's unique or not, should not be used as a primary key field. the id column's only purpose is to uniquely identify that row and should carry no meaning/purpose beyond that.

Chris