2011-07-31 23 views
2

私は、関連する(真剣に辛口で湿った)PHPアプリケーションと結婚しようとしていますが、両方のアプリケーションでデータベースを共有しています。これまでは幸せに働いています。新しいモデルと従来のモデルとの間に1対多の関係が必要なケースが発生しました。通常、私は単純に使用したい:レガシーテーブルの1対多の関連付けでの結合テーブルの使用

class LegacyModel < ActiveRecord::Base 
    belongs_to :new_model 
end 

class NewModel < ActiveRecord::Base 
    has_many :legacy_models 
end 

しかし、これは私がレガシーテーブルに列を追加すると、私はむしろそれをしないだろうに終わると思いますために、レガシーアプリケーションは十分に壊れていて、私は実際にテーブルを変更する危険性は望んでいません。読み取り専用の意味で使用してください。だから私はnew_model_idが一意であり、legacy_model_idがない結合テーブルの使用を検討していました。これは私がRailsから外しているように感じていますが、その関係はかなり悪いので、私は疑問に思っています:

1)これは容認できるアプローチですか?

2)もっと良い解決策はありますか?

私のサンプルコードは擬似コードであり、代表ではありませんのでご注意ください。私はちょうど全体のアイデアを取得したい。

ご協力いただきありがとうございます。

答えて

2

私が見る限り、これは完全に素晴らしいアプローチです。接続しようとしていたモデルが現在のRailsアプリケーションの一部であったとしても、明示的な結合テーブルを持つことは、すぐにでもすぐ後にでもできることなど、多くの利点があります。より多くのデータをキャプチャ)。

私は自分と同じようなことをしていますが、私が触れている他のデータベースは、レガシーではありませんが、読書専用の方法で接続したいだけで、全く新しいものです。テーブルを結合する。それには何も間違っていません!

+0

cool、thanks :) – jaydel