我想創建「關聯」(或具有類似方法的同等概念,可以從關聯中獲得)。正是通過這張信息表,無需與涉及CRUD的其他表進行更新。Rails - 將數據庫/模型與非數據庫表的模塊關聯
這是我的未更新的信息表:
Table name: Personalities
personality_type | alternate_name | CF1 | CF2 | CF3 | CF4 | CF5 | CF6 | CF7 | CF8
----------------------------------------------------------------------------------
ENTj | ENTJ | Te | Ni | Se | Fi | etc | etc | |
INTp | INTJ | (more data values)
ISFj | ISFP | (more data values)
ESFp | ESFP | (more data values)
所以,在我看來,讓這個未更新到數據庫表中,並在其上進行查詢,將設計的愚蠢和毫無意義的方式我的代碼,因爲這會導致所有的查詢加載時間開銷。
所以我在想像做一個單獨的Ruby模塊,但不知道如何「關聯」它與其他表模型將成爲完整的數據庫表。
1)如何將一個基於ActiveRecords :: Base的非數據庫類實例與一個?
2)我應該將哪些格式/數據類型放入未更新的信息表中?類,模塊,多個類實例,2維數組或2維散列?
- 我在整理這個決定時的目標是能夠使用與數據庫模型關聯的類似方法符號。 (例如名爲「Personality」和「User」的兩個表格將允許Rails/Ruby代碼,如
@user.alternate_name.
和@personality.user.email
)。
3)軌道使用hidden:id和timestamp列是否會以任何方式影響它? (如果這個問題有點寬泛,請隨時忽略回答)。 非常感謝!
- 用戶只能擁有一種性格類型。其他數據庫模型需要引用獨立於用戶模型的個性類型信息。
啊,應該提到其他信息,但我沒有意識到它會變得重要;我想盡可能簡化我的問題。 我也有其他的關聯。 用戶可以設置自己的個性類型,但也有字符。用戶將通過加入模式對他們認爲角色的個性進行「投票」,例如「聲明」。重要的是,我將通過對每個角色的總人數進行實質性的投票來創建投票。 – ahnbizcad
因此,我的想法是,我應該有某種包含這些人格類型的獨立實體,而不是將個性概念完全包含在用戶模型中,因爲其他模型需要引用與用戶無關的個性類型模型。 當然,我想通過不必在另一個模型中再次定義這些方法來保持乾燥。 – ahnbizcad
那麼,您仍然可以避免通過爲每個個性類型的計數器添加一個'Personality'模型到'Character'模型並允許用戶增加它們。然而,你已經開始描述一個足夠複雜的配置,可能需要自己的模型... – Jon