Mysql嵌套登录(登录后的另一个登录)数据库设计


Mysql Database Design of Nested Login (Another Login After Login)

在我的应用程序中有两个用户Manager和Team。在第一次登录时,我在这里检查用户是经理还是团队成员。我正在通过user_type进行检查。所以,

## User's table ##
----------
--> fieldnames
'user_id' 'username' 'email' 'password' 'user_type' (if 1 = user is manager , 0 = user is team member )
Row 1 -> '1' 'abc' 'abc@gmail.com' 'abc' '1' (user_type = 1 so Manager)
Row 1 -> '2' 'def' 'def@gmail.com' 'abc' '0' (user_type = 0 soTeam Member)

## Team's table ##
----------
--> fieldnames
'team_id' 'teamname' 'teamcode' 'user_id' 'user_type' 
Row 1 -> '1' 'TeamName1' 'AFE1(0' '1' '1' 
Row 2 -> '2' 'TeamName2' 'BCD@1(' '2' '1'

(因此,TeamName1是由abc用户添加的,他是一名经理。

  • 唯一代码(AFE1(0)发送到经理的电子邮件地址,这是团队代码,然后经理将单独给团队成员

    现在我被团队的唯一性所困扰,因为成员可以从一个团队注销,通过另一个团队的唯一代码登录,然后加入另一个球队)

  • SQLFiddle与上述数据。。。

注意:团队代码是在用户注册为经理时生成的。

  • 唯一代码通过电子邮件发送给经理。然后经理会单独将团队代码提供给团队成员
  • 在加入团队时,团队成员将插入团队代码,然后团队成员可以加入团队
  • 加入团队后,经理可以将任务分配给经理。向团队成员提供反馈
  • 团队成员可以从一个团队注销并加入另一个团队

以上过程是在以团队成员或经理身份登录后进行的。

所以,我的问题是有一个嵌套登录(一个登录一个登录和任务分配过程是基于"团队代码")

所以,我对数据库结构感到困惑,因为teamcode也是唯一的,team_id也是唯一的?

据我所知,经理可以是其他团队的团队成员,团队成员也是其他团队经理的一部分。

所以您不能将用户类型存储在用户表中。所以你需要3台

1) 用户:存储用户信息,如姓名电子邮件等。。

2) team:存储团队信息,如"team_id"teamname"teamcode"

3) 关联:将用户和团队与滚动相关联(associationId,user_id,team_id,rollType)

若要为每个关联存储不同的密码,请在关联表中添加密码。

当经理添加一个团队时,使用teamcode在团队中创建条目,并使用关联表user_id中的insert条目将其关联起来,user_id=经理的用户id团队id您刚刚创建了rollType 1(user_type=1,因此是经理)。

当管理员创建一个用户作为团队成员时,如果它不是您系统的用户,他们会将其插入用户表中,并将其与rolltype2关联。

如果该用户已经在用户表中,则不需要将其输入到用户表中。

因此,当用户登录时,您可以使用关联表获得团队的列表。

您必须为每个登录进程运行一个检查查询,以确定团队成员是否已经存在于其他团队表中。如果他有记录,那就限制一下。