0

这个问题来自于分解一个太大的问题。

Users在 a 中创建EventsRolea Network。然后将Events它们连接到(在他们被雇用或解雇时可以占据Role不同的位置)以及. 无论创建. _ _UsersRoleEventUsersRolesEventsRoleEvent

Role可能被摧毁,但Event只要存在,它就会一直Network存在。(就像删除了一个职位,但他们仍然想要退休职位的数据。)

那么aEvent和a可以分开吗?这是糟糕的轨道设计吗?还有另一种方法可以做到这一点吗?我是否会有一个特殊的“已退休”角色并始终将事件绑定到 a然后使用?belongs_toRoleNetworkRolebelongs_to :network, :through => :role

网络.rb

class Network < ActiveRecord::Base
  has_many :roles
  has_many :users, :through => :roles
  has_many :events
end

角色.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
4

1 回答 1

0

在我看来,与您的关联(属于角色和网络的事件)的设计并不差。而且我认为拥有“退休角色”比将其设为 NULL 更令人困惑。但也许您应该考虑status在角色上设置一列而不是删除它。如果状态不是例如1(例如,如果 1 = ok 和 2 = inactive),则不能再使用它,就像它被删除一样。

当您不了解全局时,很难给出建议,但是,正如我所说,在我看来,没有必要为了能够改变关联而“退休”角色。

于 2012-12-06T06:40:17.987 回答