我正在开发我的第一个真正的 Rails 应用程序,用于在公司进行时间跟踪,并且遇到了数据库/模型设计问题。我的应用程序有一个用户模型和一个角色模型,它们通过 has_and_belongs_to_many 关联链接在一起。
角色之一是经理。一个经理可以有很多助理,助理可以有很多经理(尽管通常只有一个)。这种关系通过在 User 模型中表示为 manager_assistant_relationship 表示:
has_many :assistants, :through => :manager_assistant_relationships
has_many :managers, :through => :manager_assistant_relationships
助理可以有很多班次(代表工作班次的不同模型),经理可以有很多客户(另一种为助理工作计费的模型)。更多的协会即将到来。
据我所知,唯一的解决方案是将所有这些关系放在 User 模型中,但是对此感觉有些不对劲,并且随着角色的增加和关联的增加,User 模型可能会变得臃肿,而且看起来也不直观,因为 User 只有如果他是经理,很多助手。我想要一些关于这种方法的潜在陷阱以及我应该考虑哪些替代方案的建议。
将 User 模型子类化为角色会是一个好主意吗?