Ruby on rails 3 设计ActiveRecord模型:用户-组织-成员资格-应用程序

Ruby on rails 3 设计ActiveRecord模型:用户-组织-成员资格-应用程序,ruby-on-rails-3,activerecord,mapping,Ruby On Rails 3,Activerecord,Mapping,我不熟悉Rails,并设计了一个与域实体相关的应用程序,如: 用户属于许多组织 组织有很多用户 组织有很多应用 应用程序由组织开发 应用程序由同一组织的多个用户(开发人员)开发 用户是许多应用程序的开发人员 下面是上述关系的映射 class Organization < ActiveRecord::Base has_many :memberships has_many :users, through: :memberships end class User <

我不熟悉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表,但会更改

属于:会员


属于\u to:user

根据您的解释,似乎每个组织中只有特定的用户在使用应用程序。如果组织中的每个用户都不是在使用某个应用程序,而只是某些用户,那么我会保留ApplicationDeveloper表,但更改为:成员身份为:用户应用程序的所有开发人员都是同一组织的开发人员组织中的所有开发人员都可以使用该应用程序吗?如果是这样,你就不需要桌子了。如果组织中只有一些开发人员可以使用该应用程序,而有些开发人员不能,那么您需要该表。