2015-08-27 30 views

回答

1

我認爲你正在尋找的是一個多態關聯。

http://guides.rubyonrails.org/association_basics.html#polymorphic-associations

+0

謝謝,那是我在找什麼。儘管出於好奇,如果我有一個belongs_to:order和belongs_to:quote的模型,那麼只是給它一個id,這仍然是一個壞主意?如果是這樣,爲什麼?由於這已經被很好的使用,所以我寧願避免將模型名稱更改爲::new_name。 – Suavocado

+0

如果您使用它,您將有兩個字段作爲外鍵,即id字段和類型字段,因此這將是較慢的查找。你可以通過索引來改進它。由於您現在有一個額外的字符串字段和可選的索引,它將佔用數據庫中的更多空間。我認爲唯一的好處是如果你需要所有的附件放在一張表中,因爲你將把這些附件作爲一個單獨的實體工作,而不管關聯的表是什麼,並且你將擁有很多這樣的表,這樣使用SQL UNION會變得很麻煩。 – dinomix

+1

如果您正在將報價和訂單表中的附件ID存儲爲完全正確,因爲您只是重複使用單個圖像。如果您要在附件表格中存儲訂單ID和報價ID,那麼該多態性將出現在該表格中。 – dinomix