我正在开发一个工作门户。我对如何创建和管理用户感到困惑。例如:我的应用程序中将有 3 种类型的用户(以后可能会扩展):公司、顾问和候选人。他们每个人都将拥有完全不同的角色和对管理员(即帐户)面板/控制台的访问权限,或者您可以说他们将拥有完全不同的视图来管理他们的帐户。因此,如果用户使用公司帐户登录,他/她应该能够创建工作并更新公司资料,如果用户以顾问身份登录,那么他/她应该能够代表其他公司(谁可能会或可能不会在网站/应用程序上注册),还应该可以浏览/搜索公司的工作,并且应该能够发布申请(即 代表候选人(可能或可能尚未在网站/应用程序上注册)的候选人申请工作)。而且,如果用户以候选人身份登录,那么他/她应该能够创建他们的简历/简历、搜索工作并申请公司发布的工作。
这是我的想法:创建一个用户模型,然后为公司、顾问和候选人拥有 STI(单表继承)。但是,STI 迟早会变得复杂。后来,我想为每个模型创建不同的模型,但随后将重复登录/注册和其他类似活动的代码,这意味着没有 DRY。
我想遵循最好的方法。那么,想知道专家将如何解决这种情况吗?谢谢。