我正在尝试将rails应用程序与相关(并且非常狡猾和潮湿)的PHP应用程序结合,但两个应用程序共享一个数据库。到目前为止,它正在愉快地工作。我遇到过一个案例,我需要一个新模型和一个旧模型之间的一对多关系。通常我只是使用:
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)还有更好的解决方案吗?
请注意,我的示例代码是伪代码,不具代表性。我只是想了解这个想法。
提前感谢您提供的任何帮助。
答案 0 :(得分:2)
就我所见,这是一个非常好的方法。即使您尝试连接的模型是当前Rails应用程序的一部分,具有明确的连接表也有许多优点(例如能够 - 或者立即或稍后 - 添加更多列以便添加和捕获更多数据)。
我自己正在研究类似的东西,但我触摸的另一个数据库不是遗产,而是新的,除了我也只想以只读方式连接到它,所以我做了类似的连接表。这没什么不对!