Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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
Php 嵌套登录的Mysql数据库设计(登录后再登录)_Php_Mysql_Database - Fatal编程技术网

Php 嵌套登录的Mysql数据库设计(登录后再登录)

Php 嵌套登录的Mysql数据库设计(登录后再登录),php,mysql,database,Php,Mysql,Database,在我的应用程序中,有两个用户经理和团队。 在这里,在第一次登录时,我检查用户是经理还是团队成员。我正在通过用户类型进行检查。 所以 (因此,TeamName1是由abc用户添加的,他是一名经理 唯一代码(AFE1(0)被发送到经理的电子邮件地址和团队代码,然后经理将单独发送给团队成员 现在我被团队的独特性所困扰,因为成员可以从一个团队注销,并通过另一个团队的独特代码登录,然后加入另一个团队) 注意:团队代码是在用户注册为经理时生成的 唯一代码通过电子邮件发送给经理。然后经理将单独将该

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

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

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

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

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

  • 唯一代码通过电子邮件发送给经理。然后经理将单独将该团队代码发送给团队成员
  • 在加入团队时,团队成员将插入团队代码,然后团队成员可以加入团队
  • 加入团队后,经理可以将任务分配给经理。向团队成员提供反馈
  • 团队成员可以从一个团队注销并加入另一个团队
以上过程是在以团队成员或经理身份登录后进行的

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


所以,我对数据库结构感到困惑,因为团队代码也是唯一的,团队id也是唯一的?

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

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

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

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

2) 团队:存储团队信息,如“团队id”“团队名称”“团队代码”

3) 关联:将用户和团队与该卷关联 (associationId、用户id、团队id、rollType)

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

当经理添加一个团队时,然后在团队中使用teamcode创建条目,并使用关联表中的插入条目将其关联用户\ id=经理的用户id团队id您刚刚创建的rollType 1(用户\类型=1 so经理)

当经理创建一个用户作为团队成员时,如果该用户不是您系统的用户,则将其插入用户表中,并将其与rolltype 2关联

若该用户已经在用户表中,则只需将其关联,无需在用户表中输入


因此,当用户登录时,您可以使用associate table获得团队名单。

Brother我将在完成数据库设计后立即执行此操作。我被数据库设计和团队模块的唯一性所困扰。@ryan。“我现在还在这个问题上,如果你有任何想法,请告诉我。”瑞安·文森特。谢谢你的回复。。。经理可以是另一个团队的团队成员意味着第一个经理可以通过给第二个经理团队代码来添加第二个经理作为团队成员,以便出现时间问题。昨天我的问题是通过制作复杂的mysql结构来解决的,但据我所知,我发现它非常脏,所以当重复这种工作时,我需要一些完美的数据库结构。处理这种情况的“标准”方法是在用户-团队和角色之间建立“多对多”关系。你是如何表现这些关系的?为什么不让我们看看你有什么?i、 e.添加
角色
表和将它们链接在一起的其他表。@RyanVincent。感谢您的宝贵贡献。:)哦。太好了,这就是我需要的解决方案。用户和团队协会非常感谢您的回答。
## 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'