2011-07-01 45 views
1

我的Rails應用程序使用STI,我擁有不同類型的公司和個人。例如,我有供應商,製造商和客戶作爲公司類型。我也有員工,聯繫人和客戶作爲人的類型。在Rails中建模公司和個人客戶

現在我想提到一個客戶,可以是公司客戶或個人客戶。我可以使用哪種方法/我應該如何將這兩個不同的實體組合成一個?所以我可以從訂單中引用客戶?

回答

0

你既可以使用:

Order  
    belongs_to :company 
    belongs_to :person 
end 

,有兩個外鍵 - 然後添加一些驗證,以確保他們的一個填充,然後也許添加返回無論是一個「顧客」的方法相關的公司或個人,具體取決於使用哪一個。或者,創建一個單獨的Customer模型(和表),其中有兩個相同的兩個外鍵,然後Order可以簡單地爲belong_to :customer。如果您想要在客戶級別存儲更多數據(如信用額度或計費詳細信息),則此第二種方法可能更適合,並且可能會更加長期。

或者,您可以重新考慮您的業務邏輯,並堅持認爲所有訂單都屬於某人,即使該人員是公司的僱員並代表公司採購。

F

相關問題