[英]Belongs_to and backup belongs_to in Rails
這個問題來自分解一個太大的問題。
Users
將Events
創建為Network
的Role
。 然后, Events
既連接到Role
(雇用或解雇不同Users
也可以占據該Role
),也連接到Event
。 具有管理Roles
Users
可以訪問所有Events
而與創建Event
的Role
無關。
Role
可能會被破壞,但是只要Network
存在, Event
就將持續。 (就像職位被刪除一樣,但他們仍然希望獲得退休職位的數據。)
那么, Event
可以分別belongs_to
一個Role
和一個Network
嗎? 那是不好的護欄設計嗎? 還有另一種方法嗎? 我是否將具有特殊的“退休”角色並將事件始終與Role
綁定,然后使用belongs_to :network, :through => :role
?
Network.rb
class Network < ActiveRecord::Base
has_many :roles
has_many :users, :through => :roles
has_many :events
end
Role.rb
class Role < ActiveRecord::Base
belongs_to :user
belongs_to :network
end
Event.rb-是嗎?
class Event < ActiveRecord::Base
belongs_to :role
belongs to :network
end
在我看來,與您的關聯(屬於Role和Network的事件)的設計並不是一件壞事。 而且我認為擁有“退休角色”比擁有NULL更令人困惑。 但是也許您應該考慮在角色上具有列status
,而不是刪除它。 如果狀態不是例如1
(例如1
=正常,2 =無效),則不能再使用,因為它已被刪除。
當您不了解全部情況時,很難給出建議,但是,正如我所說,我認為,不必為了改變關聯而需要“退休”的角色。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.