我正在尝试启动一个应用程序,但它不是为了管理医院,它将是为医生和病人。其中将有多种类型的用户将能够登录,如医生,患者/监护人。
医生可以在多个地点拥有多个诊所,并且医生可以管理患者记录。一旦医生创建了患者帐户,那么患者就可以接受医生的预约或更新他的预约状态,接下来会有更多的东西。
问题是如何处理ERD。??
我要一份
User //User accounts used to login in to the system Doctor Patient Guardian Role Permission
这些是我目前创建的模型。但在我看来不太对劲..
我是否应该删除角色列,因为对于不同的预定义角色,我已经有了不同的表。
或者它应该在那里。但是如果没有roles表,如何管理用户的权限。
同样最重要的是..
如何跟用户一对一地走??我的意思是,我是否应该在用户模型中创建函数,比如。
public function doctor(){} public function guardian(){} public function patient(){}
或者任何其他更好的方法都是可以遵循的。
发布于 2017-02-26 14:34:15
如果他们都是用户,您可以从基本用户模型扩展不同的用户。
如果它们需要数据库中的不同列,请考虑单表继承。
如果角色是静态的,我将创建一个名为UserType的类,并将每个用户类型的常量映射为一个整数。在数据库中,用户表将有一个映射到此整数的类型列。
例如:
class UserType {
const DOCTOR = 1;
}在您的应用程序中,您将能够通过执行$user->type === UserType::DOCTOR来检查用户类型
在Eloquent本身中,您可以扩展newFromBuilder方法以检查类型属性并返回子类(如Doctor)而不是User。所以即使你做了$user = User::find(1);,你仍然会得到类Doctor。
在创建用户时,您可以只创建Doctor本身,但请确保在__construct中设置适当的type属性。
现在你有了一个基本的User类,你的共享功能可以放在这里。专门的方法,比如与诊所相关的方法,可以放在Doctor类中。
https://stackoverflow.com/questions/42464989
复制相似问题