Permalink
Browse files

add foreign keys section

  • Loading branch information...
1 parent fd8c384 commit cbfeaa2563fd404fa5a2890a893fcd5fa1acc937 @fcheung fcheung committed Sep 9, 2008
Showing with 9 additions and 1 deletion.
  1. +7 −0 railties/doc/guides/migrations/foreign_keys.txt
  2. +2 −1 railties/doc/guides/migrations/scheming.txt
@@ -0,0 +1,7 @@
+== Active Record and Referential Integrity ==
+
+The Active Record way is that intelligence belongs in your models, not in the database. As such features such as triggers or foreign key constraints, which push some of that intelligence back into the database are not heavily used.
+
+Validations such as `validates_uniqueness_of` are one way in which models can enforce data integrity. The `:dependent` option on associations allows models to automatically destroy child objects when the parent is destroyed. These cannot however guarantee referential integrity and so some people augment them with foreign key constraints.
+
+Although Active Record does not provide any tools for working directly with such features, the `execute` method can be used to execute arbitrary SQL. There are also a number of plugins such as http://agilewebdevelopment.com/plugins/search?search=redhillonrails[redhillonrails] which add foreign key support to Active Record (including support in `schema.rb`).
@@ -41,4 +41,5 @@ By definition this will be a perfect copy of the database's structure but this w
=== Schema dumps and source control ===
-Because they are the authoritative source for your database schema, it is strongly recommended that you check them into source control.
+Because they are the authoritative source for your database schema, it is strongly recommended that you check them into source control.
+

0 comments on commit cbfeaa2

Please sign in to comment.