Help with relations

Hello

I have the three database models: “seller”, “client” and “account”. A
seller may have many clients and many accounts, but I would like to
add the constraint that given a seller and a client, only one account
may exist between them.

Is there a way to express this contraint using ActiveRecord relations?

Thanks in advance,
Andre

[email protected] wrote:

Hello

I have the three database models: “seller”, “client” and “account”. A
seller may have many clients and many accounts, but I would like to
add the constraint that given a seller and a client, only one account
may exist between them.

Is there a way to express this contraint using ActiveRecord relations?

Yes – validates_uniqueness_of will do the trick – but never rely
solely on ActiveRecord constraints. You need a unique index (and
foreign key constraints) on the DB side too.

Thanks in advance,
Andre

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

On 21 May 2010 15:49, [email protected] [email protected] wrote:

Hello

I have the three database models: “seller”, “client” and “account”. A
seller may have many clients and many accounts, but I would like to
add the constraint that given a seller and a client, only one account
may exist between them.

Is there a way to express this contraint using ActiveRecord relations?

Does Client belongs_to seller, and Account belongs_to seller? If so
then you could put client and account together in one table.
Alternatively have Client has_one account and Account belongs_to
client, or the other way round.
This doesn’t work if you have HABTM relationship of course.

Colin

On May 21, 12:20 pm, Marnen Laibow-Koser [email protected] wrote:

Yes – validates_uniqueness_of will do the trick – but never rely
solely on ActiveRecord constraints. You need a unique index (and
foreign key constraints) on the DB side too.

I am already using the validations and key constrains. I was actually
wondering about the possibility of having Active Record generate
helper methods reflecting that kind of relation.

Thanks,
Andre