设计ActiveRecord模型:用户-组织-成员-应用程序



我是Rails的新手,正在设计一个域实体相关的应用程序,如:

  • 用户属于多个组织
  • 组织有许多用户
  • 组织有许多应用程序
  • 应用程序由组织开发
  • 应用程序由同一组织的许多用户(开发人员)开发
  • 用户是许多应用程序的开发人员

以下是上述关系的映射

class Organization < ActiveRecord::Base
    has_many :memberships
    has_many :users, through: :memberships
end
class User < ActiveRecord::Base
    has_many :memberships
    has_many :organizations, through: :memberships
    has_many :application_developers
    has_many :applications, through: application_developers
end
class Membership < ActiveRecord::Base
  belongs_to :user
  belongs_to :organization
end
class Application < ActiveRecord::Base
    belongs_to :organization
    has_many :application_developers
    has_many :memberships, through: application_developers 
end
class ApplicationDeveloper < ActiveRecord::Base
    belongs_to :membership
    belongs_to :application
end 

有人能核实一下上面的映射是否正确吗?请给出您的反馈。

若你们有比上面更好的设计,那个将是非常可观的。

如果组织中的每个用户都没有在应用程序上工作,并且只有特定的用户,那么我会保留ApplicationDeveloper表,但更改

belongs_to :membership

belongs_to :user

相关内容

最新更新