0

この質問は、大きすぎる質問を分割した結果です。

UsersEventsの として作成RoleしますNetwork。次にEvents、 は と の両方に接続されます(雇用または解雇されたときにRole別のUsersメンバーが占有できます) 。を作成した に関係なく、管理者がすべてにアクセスできます。RoleEventUsersRolesEventsRoleEvent

Roleが破壊される可能性はありますが、 が存在するEvent限り存続しNetworkます。(ポジションが削除された場合のように、退職したポジションのデータは引き続き必要です。)

では、 aと aのEvent両方を別々に使用できますか? それはレールの設計が悪いのでしょうか?これを行う別の方法はありますか?特別な「引退した」役割を持ち、イベントを常に に関連付けてからを使用しますか?belongs_toRoleNetworkRolebelongs_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
4

1 に答える 1

0

私の意見では、関連付け (役割とネットワークの両方に属するイベント) の設計は悪くありません。そして、NULLよりも「引退した役割」を持っている方が混乱すると思います。statusただし、ロールを削除するのではなく、ロールに列を作成することを検討する必要があるかもしれません。ステータスがそうでない場合1(たとえば、1 = OK、2 = 非アクティブの場合)、削除されたように動作し、それ以上使用できません。

全体像を把握していない場合にアドバイスを与えることは困難ですが、前述したように、関連付けを変更できるようにするためだけに「引退した」役割は必要ないと思います。

于 2012-12-06T06:40:17.987 に答える