Laravel中一种医院管理的数据库模式

Laravel中一种医院管理的数据库模式,laravel,laravel-5.4,laravel-eloquent,Laravel,Laravel 5.4,Laravel Eloquent,我正在尝试启动一个应用程序,但它不是为了管理医院,而是为了医生和病人。 如果有多种类型,用户将能够登录,如医生、患者/监护人 医生可以在多个地点拥有多个诊所,医生可以管理患者记录。 一旦医生创建了患者帐户,患者就可以接受医生的预约或更新预约状态,接下来还会有更多的内容 问题是如何配合ERD 我要 用户//用于登录到系统的用户帐户 医生 病人 守护者 角色 准许 这些是我目前创建的模型。但是我觉得他们不合适 我是否应该删除角色列,因为我已经为不同的预定义角色创建了不同的表 或者它应该在那里。但

我正在尝试启动一个应用程序,但它不是为了管理医院,而是为了医生和病人。 如果有多种类型,用户将能够登录,如医生、患者/监护人

医生可以在多个地点拥有多个诊所,医生可以管理患者记录。 一旦医生创建了患者帐户,患者就可以接受医生的预约或更新预约状态,接下来还会有更多的内容

问题是如何配合ERD

我要

用户//用于登录到系统的用户帐户 医生 病人 守护者 角色 准许

这些是我目前创建的模型。但是我觉得他们不合适

我是否应该删除角色列,因为我已经为不同的预定义角色创建了不同的表

或者它应该在那里。但如果没有角色表,如何管理用户权限

最重要的是

如何与用户进行一对一的沟通??我的意思是我应该在用户模型中创建函数,比如

公共职能医生{} 公共职能监护人{} 公共职能病人{}


或者其他更好的方法也可以遵循。

如果他们都是用户,您可以从基本用户模型扩展不同的用户

如果在数据库中需要不同的列,请考虑单表继承。

如果角色是静态的,我将创建一个名为UserType的类,并将每个用户类型的常量映射到一个整数。在数据库中,用户表将有一个映射到此整数的类型列

例如:

class UserType {
    const DOCTOR = 1;
}
在应用程序中,您可以通过执行$user->type===UserType::DOCTOR来检查用户的类型

在Eloquent本身中,您可以扩展newFromBuilder方法来检查type属性,并返回类似于Doctor而不是User的子类。因此,即使您执行$user=user::find1;,你还是会得到班医的

创建用户时,您可以只创建医生本身,但请确保在_构造中设置适当的类型属性

因此,现在您有了一个基本用户类,您的共享功能可以转到这里。专业方法,如与诊所的关系,可以进入医生课程


这与上面的内容有些类似:

是否有不同类型的用户(如医生和患者)共享用户表?