假設您有兩種不同類型的用戶,分別具有不同的配置文件:音樂藝術家和聽衆。每個配置文件都有一些重疊的屬性和一些不同的屬性。你應該爲每個不同的配置文件分開模型嗎?還是應該在用戶表中只有一個二進制數據列,以確定用戶是否是藝術家?這將如何構建?兩種不同的配置文件類型
3
A
回答
3
您可以使用Single Table Inheritance
,這可以通過創建模型的子類來實現。
生成Profile
模型與type:string
柱(The name can be overriden):
$ rails g model Profile type:string
現在,在profile.rb
,子類模型:
class Profile < ActiveRecord::Base
# Common profile attributes
end
class Artist < Profile
# Things specific to an artist profile
end
class Listener < Profile
# Things specific to a listener profile
end
當您創建一個Artist
或Listener
,它會與配置文件的類型一起保存在profiles
表中。
例如,如果你做Artist.create
,它將被保存在profiles
表中type='Artist'
。
當您提取記錄時,將以適當的型號返回,如Artist
,Listener
或通用Profile
。
有關此技術的更多信息,請查看this question。
This blog post做了很好的解釋。
0
一個默認調用具有共同的屬性和另外兩個人(藝術,監聽器)機型的每一個
的特定屬性並且在配置文件配置文件,使用字段保存類型(藝術或聽衆)
只是我的觀點。
相關問題
- 1. Mysql設計。兩種類型的用戶,兩種不同的配置文件
- 2. 兩種不同類型的
- 3. 兩種不同類型
- 4. 一個文件中有兩種不同的文件類型?
- 5. Web2py,驗證兩種類型的配置文件
- 6. 如何用兩種不同的配置文件擴展Django用戶模型?
- 7. 如何區分python 2.7中兩種不同類型的文件?
- 8. 不能自動裝配相同類型的2種配置豆
- 9. 從兩種不同類型的
- 10. 兩種不同類型的jQuery
- 11. set_intersection兩種不同類型的集合
- 12. 有兩種不同類型的
- 13. 合併兩種不同類型的RDD
- 14. Java:匹配兩種不同類型的數組
- 15. 是否可以分配兩種不同類型的結構?
- 16. 如何獲得兩種不同類型的兩種不同的二叉樹?
- 17. 分配不同類型的變量的一種類型
- 18. 兩種不同的參數類型(強制對象到類型)
- 19. BasePage的兩種不同類型的控件
- 20. 不同種類的裝配?
- 21. 在配置文件中選擇不同類型的數據庫
- 22. 在maven中配置不同文件類型的編碼?
- 23. 根據用戶類型顯示不同的配置文件
- 24. Django - 不同類型的用戶配置文件
- 25. 如何解析某種類型的配置文件
- 26. 相同的聲明,我想兩種不同類型的
- 27. 提供兩種不同的相同類型的實例
- 28. 具有相同ID的Android兩種不同的SharedPreference類型
- 29. 兩種不同方式的類型類的實例
- 30. 爲兩種完全不同的類型編寫泛型方法
Artist和Listener類都在Profile模型中?你能指點我更深入到單表繼承的任何來源嗎? – 2011-03-26 08:40:04
也,我怎麼會從控制檯產生這個? – 2011-03-26 08:42:07
@Justin,更新了回答。這種技術的文檔很少令人失望。 – 2011-03-26 21:50:43