[英]Rails has_many without a belongs_to
我正在使用Rails 4並且我正在嘗試實現一個Notif
模型,該模型應該有一組已經看過它的用戶。
我的想法是使用has_many關系( notif has_many :users
),我在其中添加已經向用戶看過通知的users
。 我遇到的當前問題是我無法調用@notif.users
因為它聲明column users.notif_id does not exist
因為我沒有使用belongs_to
。
一種解決方案是使用多對多關系; 但是,我想避免為每個查看通知的用戶創建單獨的關聯(嘗試保存數據庫空間)。
有沒有辦法有效地擁有一個沒有has_many
關系的users
字段? 我想我只是想在我的notif模型中存儲一組用戶id。
這在技術上是可行的 - 但它不是ActiveRecord的工作方式,也不會為您省錢。
並非所有數據庫都支持數組類型。 如果沒有數組類型,則必須將id存儲在字符串中,這幾乎消除了任何有效的查詢和連接形式。
即使是支持數組的數據庫也不支持在數組中存儲外鍵。 這意味着你可以親吻參照完整性再見。 索引數組也可能無法正常工作。
除此之外,您無法在沒有重大攻擊的情況下使用Rails關聯。
我希望你現在意識到省錢是一個非常愚蠢的計划。 特別是因為與開發者時間相比,數據庫空間便宜。
如果你正在使用關系數據庫,雖然這是一個正確的全向關系,但ActiveRecord不會很好地與你玩(如果有的話)。
此外,值得注意的是,在2015年,嘗試查找全向ActiveRecord解決方法比額外的數據庫條目要昂貴得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.