Handling database table dependenciese


#1

Hey,

thanks for reading this post. How do you handle dependencies? A really
simple example: I’ve got a table called “entity” and another table,
let’s say, “entity_type”. The entity types can be changed, of course,
they also should be deletable, but only, if they are not used by some
entities! How can I ensure this in Rails or directly in the DBMS
(postgres)? Do I have to check it manually within a validate-method in
the model?


#2

ms wrote:

Hey,

thanks for reading this post. How do you handle dependencies? A really
simple example: I’ve got a table called “entity” and another table,
let’s say, “entity_type”. The entity types can be changed, of course,
they also should be deletable, but only, if they are not used by some
entities! How can I ensure this in Rails or directly in the DBMS
(postgres)?

You need foreign key constraints in the database; check the Postgres
docs for more details. I would highly recommend using the
foreign_key_migrations plugin, which will manage these constraints
automatically from your migrations (it’s at
http://github.com/harukizaemon , along with a lot of other good stuff).

Big tip: always make your constraints deferrable. It will make testing
much easier.

Do I have to check it manually within a validate-method in
the model?

I suppose you could, but the DB will already do that if you have the
constraints.

Best,

Marnen Laibow-Koser
removed_email_address@domain.invalid
http://www.marnen.org