2009-03-31 12 views
0

私はRuby on Railsでいくつかのことを開発しています。今、モデルは関係を指定するので、RoRが整合性を強制することはわかっていますが、DBレベルはどうですか?他の人が移行で外部キー関係を設定する方法

他の人がDBテーブルの外部キー関係を設定していますか?そうであれば、どのように?、セットアップにどのような方法があるようには思えない/(多分生のSQLを使用して)移動中デシベルの関係を破壊する

おかげ

ポール。

答えて

2

はここでそれを行う方法についてのガイドです: http://seb.box.re/2006/7/29/foreign-key-and-rails-migration

ここで、このためのプラグインもあります: http://github.com/harukizaemon/foreign_key_migrations/tree/master

しかし、Railsは簡単に理由マイグレーションで外部キーをサポートしていません。基本的に、ActiveRecordを使用する場合は、実際には必要ありません。ここで

は、彼らが不要であり、その使用はレールに落胆している理由の良い説明です:http://www.motionstandingstill.com/i-dont-use-foreign-key-constraints-with-rails/2008-10-17/

意見は、このテーマに異なります。ここで良い議論があります:http://forum.softiesonrails.com/forums/3/topics/138

0

SQLを使用しての移行短いからそれを行う方法があることを意味し、ありません:それはあなたがSQL

使用する必要が

  • DB固有のだ

    1. 最初はそれほど大きなディールではありません(どのくらいの頻度でプロジェクトのデータベースを切り替えるのですか?)、そして2番目は単純に人生の事実です。だから、もし望むなら、それらを使用してください。

  • -1

    なお、これらは常にデータベースレベルで設定する必要があります。アプリケーションに加えてデータベース内のデータにアクセスしたり変更したりするには、他の方法もあります。無駄なデータを必要としない限り、アプリケーションではこれらのタイプのルールを設定しないでください。 SQL(GASP)を使用する必要がある場合でも、データの完全性に触れるすべてのものがデータベース・レベルでなければなりません。

    +0

    必ずしもそうではありません。シナリオには、データベースの外部キーを設定するのが最善の答えですが、私が作業したほとんどのWebアプリケーションでは、必要ではありませんでした。アプリケーションレベルでこのようなビジネスルールを持つことは大変意味があります。 –

    関連する問題