我是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