我正在爲發票/客戶/合同數據庫編寫相當簡單的Web界面。 我想爲我的模型結構如下:與Rails中的遺留表格的複雜連接
class Invoice < ActiveRecord::Base
set_table_name 't10_invoices'
set_primary_key 'id_invoice'
has_one :client
end
class Client < ActiveRecord::Base
set_table_name 't20_clients'
set_primary_key 'id_client'
has_many :invoices
end
的問題是,我有以下的數據庫結構:
Tables:
t10_invoices:
id_invoice - primary_key
id_contract - foreign_key
t12_contracts:
id_contract - primary_key
t15_contracts_clients
id_client - foreign_key
id_contract - foreign_key
t20_clients
id_client - primary_key
有通過t15_contracts_clients
t20_clients
和t12_contracts
之間的關係1-1 並且在t20_clients
和t10_invoices
之間存在1-n關係。
:foreign_key
和:association_foreign_key
有什麼區別?
問題是,我無法修改數據庫的結構,我在重新定義表名,外鍵,join_foreign_keys等方面相當迷茫...... 我想要一個簡單的方法來查找客戶的發票正常的導軌方式Invoice.find(:first).client
我將不勝感激任何建議和幫助。
是的,我想創建視圖但我更願意在rails中完成所有操作 - 所以它會更加靈活,而不是讓DBA創建視圖。 – 2009-12-16 10:04:04
我明白了。在我的團隊中,我們也在維護數據庫,所以我總是傾向於使用視圖消除數據庫不一致,並儘可能保持我的應用程序邏輯清潔。如果您有機會正確重寫數據庫架構,也很有用。 但是,視圖通常不可編輯,所以應該牢記這一點。 – 2009-12-16 12:45:20