[英]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.