Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Laravel-数据库中具有不同字段的不同用户_Mysql_Laravel - Fatal编程技术网

Mysql Laravel-数据库中具有不同字段的不同用户

Mysql Laravel-数据库中具有不同字段的不同用户,mysql,laravel,Mysql,Laravel,我有一个Laravel项目,目前用户都是医生。我想像教师,警察等其他类型的用户使用该网站。这要求我扮演不同的角色,这不是问题。问题是,每种类型的角色都需要用户表中的不同用户信息。(例如,对于医生,我需要保存他们的资格、专业等,而对于警察,我需要保存他们的服务年限、级别、头衔等) 所有这些人都需要使用Users表,以便能够登录。我想知道实现这一目标的最佳方式是什么 我所尝试的: 一个包含基本字段(姓名、电子邮件、地址、电话)的用户表,然后 为每个用户创建了带有附加字段的附加表 类型(即使用“专业

我有一个Laravel项目,目前用户都是医生。我想像教师,警察等其他类型的用户使用该网站。这要求我扮演不同的角色,这不是问题。问题是,每种类型的角色都需要用户表中的不同用户信息。(例如,对于医生,我需要保存他们的资格、专业等,而对于警察,我需要保存他们的服务年限、级别、头衔等)

所有这些人都需要使用Users表,以便能够登录。我想知道实现这一目标的最佳方式是什么

我所尝试的:

  • 一个包含基本字段(姓名、电子邮件、地址、电话)的用户表,然后 为每个用户创建了带有附加字段的附加表 类型(即使用“专业”创建的医生表,
    “资格”等字段),然后链接每个医生实例 对于使用用户id的用户。对于教师、警察等也是如此 这里的问题是我无法获得我所需要的所有信息 用户一旦登录,就可以使用它。(即,如果我需要 为登录的人提供服务,我不能(或者我可以?)因为 这些信息在另一个表中
  • 多个表(警察表、医生表等) 可以让表格包含我需要的所有信息,但问题 有了它,我无法使用所有不同的表来登录用户 (或者我可以吗?)
  • 一个用户表,包含所有类型用户的所有字段。用户注册表 使用电子邮件、密码和角色,然后填写相关字段 一旦他们的角色被确定,他们就会被解雇 用户表中的列太多

我可能遗漏了一些非常明显的内容,但请有人在这里帮助我了解最佳实践或什么是最合理的方法?

添加这些表之间的关系

使用者 -身份证、姓名

医生 -id、资格、专业、用户id(FK)

警察 -id、等级、头衔、用户id(FK)


当您注册医生或警察时,在事务的帮助下在两个表中添加数据,因此用户的基本登录信息保存在用户表中,其他信息存储在特定的医生或警察表中,您可以借助Larvel关系轻松获得这些数据。

添加这些表之间的关系

使用者 -身份证、姓名

医生 -id、资格、专业、用户id(FK)

警察 -id、等级、头衔、用户id(FK)


当您注册医生或警察时,在事务的帮助下在两个表中添加数据,因此用户的基本登录信息保存在用户表中,其他信息存储在特定的医生或警察表中,您可以借助laravel关系轻松获得这些数据。

您需要的是3个表来完成此操作,而无需dupl反腐败

  • 所有共享信息的用户表
  • 具有用户id、属性和值的详细信息表(可以随意命名)
  • 基本上列出所有可用角色的角色表
  • 其余是关系:

    • 用户和角色之间的通常关系
    • 用户和详细信息之间的一对多关系

    然后,您可以检查用户是否是特定角色,并检索与该角色相关联的数据。

    您需要的是3个表来完成此操作,而不需要重复

  • 所有共享信息的用户表
  • 具有用户id、属性和值的详细信息表(可以随意命名)
  • 基本上列出所有可用角色的角色表
  • 其余是关系:

    • 用户和角色之间的通常关系
    • 用户和详细信息之间的一对多关系

    然后,您可以检查该用户是否为特定角色,并检索与该角色关联的数据。

    在我看来,用户只能通过登录凭据进行标识。其他凭据,如类型、名称、地址等,应该是一种关系。在我看来,用户只能通过登录凭据进行标识。其他凭据,如类型,名称、地址等应该是一种关系。使用这种方法有一个问题,想象一下如果类型(或角色)的数量使用此站点的用户数量大约为100,那么您需要100个表。但是如果每个角色及其详细信息都是解耦的,那么您将有一个详细信息表、一个角色表和一个用户表,在一个表中插入每个角色的所有详细信息,在另一个表中插入每个角色的所有详细信息,同时完全单独使用用户表。我如果使用这种方法有问题,想象一下如果类型(或角色)的数量使用此站点的用户数量大约为100,那么您需要100个表。但是如果每个角色及其详细信息都是解耦的,那么您将有一个详细信息表、一个角色表和一个用户表,在一个表中插入每个角色的所有详细信息,在另一个表中插入每个角色的所有详细信息,同时完全单独使用用户表。