我正在尝试启动一个应用程序,但它不是用于管理医院,它将用于医生和患者。 用户将有多种类型可以登录,如医生,病人/监护人。
医生可以在多个地点设立多个诊所,医生可以管理患者记录。 一旦患者帐户由医生创建,患者可以预约医生或更新他的预约状态,接下来会有更多的东西。
问题是如何使用ERD。??
我会
User //User accounts used to login in to the system
Doctor
Patient
Guardian
Role
Permission
这些是我目前创建的模型。但他们似乎对我不对..
我应该删除角色列,因为我已经有不同的预定义角色的表。
还是应该在那里。但如果没有角色表,如何管理用户权限。
也是最重要的..
如何与用户一对一去?我的意思是我应该在用户模型中创建函数,例如。
public function doctor(){}
public function guardian(){}
public function patient(){}
或任何其他更好的方法可以遵循。
答案 0 :(得分:1)
如果他们都是用户,则可以从基本用户模型扩展不同的用户。
如果它们在数据库中需要不同的列,请考虑单表继承。
如果角色是静态的,我会创建一个名为UserType
的类,并将每个用户类型的常量映射到一个整数。在数据库中,用户表将具有一个映射到此整数的类型列。
例如:
class UserType {
const DOCTOR = 1;
}
在您的应用程序中,您可以通过执行$user->type === UserType::DOCTOR
在Eloquent本身中,您可以扩展newFromBuilder
方法来检查type属性并返回子类(如Doctor
)而不是User
。因此,即使您$user = User::find(1);
Doctor
,您仍会获得课程Doctor
。
创建用户时,您只需创建type
本身,但请确保在__construct中设置相应的User
属性。
现在你有一个基础Doctor
课程,你的共享功能可以在这里。专业方法,如与诊所的关系,可以进入 this.emit('JustRight', () => {
this.emit(':ask', guessNum.toString() + 'is correct! Would you like to play a new game?',
'Say yes to start a new game, or no to end the game.');
});
班。
这有点类似于上面的内容:https://github.com/Nanigans/single-table-inheritance