这个问题来自分解一个太大的问题。
Users
在Events
中创建Role
Network
。然后Events
与Role
(不同的Users
可以在雇用或解雇时占用Role
)以及Event
相关联。拥有管理Users
的{{1}}可以访问所有Roles
,无论创建Events
的{{1}}是什么。
Role
可能会被销毁,但只要Event
存在,Role
就会一直存在。 (如果某个职位被删除,但他们仍然希望退休职位的数据。)
Event
Network
Event
和belongs_to
可以分开吗?这是坏导轨设计吗?还有另一种方法吗?我是否会有一个特殊的“退休”角色并将事件始终与Role
相关联,然后使用Network
?
Network.rb
Role
Role.rb
belongs_to :network, :through => :role
Event.rb - 这是对的吗?
class Network < ActiveRecord::Base
has_many :roles
has_many :users, :through => :roles
has_many :events
end
答案 0 :(得分:0)
在我看来,使用您的关联(属于角色和网络的事件)设计并不错。而且我觉得拥有一个“退役角色”而不是让它更加困惑。但也许您应该考虑在角色上使用列status
而不是删除它。如果状态不是例如1
(如果1 = ok,2 =非活动为例)它不能再使用了,就像它被删除一样。
当你没有完整的图片时,很难给出建议,但正如我所说,在我看来,只要能够改变关联就不需要“退休”的角色。