Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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 用户使用组登录_Php_Authentication_Login - Fatal编程技术网

Php 用户使用组登录

Php 用户使用组登录,php,authentication,login,Php,Authentication,Login,我有一个登录表单和三组可以登录的用户:客户端、成员、管理员。所有用户都共享一些公共属性,如用户名、密码、活动。 对于相应的组,大多数其他字段都不同,表成员最多有30个字段 这就是为什么我不希望有一个包含所有所需字段的大型用户表,而是将组相关字段分离到不同的表中。 然后我会有以下表格: ------------------ | tbl_user | |----------------| | id | | username | | password

我有一个登录表单和三组可以登录的用户:客户端、成员、管理员。所有用户都共享一些公共属性,如用户名、密码、活动。 对于相应的组,大多数其他字段都不同,表成员最多有30个字段

这就是为什么我不希望有一个包含所有所需字段的大型用户表,而是将组相关字段分离到不同的表中。 然后我会有以下表格:

------------------
| tbl_user       |
|----------------|
| id             |
| username       |
| password       |
| active         |
------------------

------------------
| tbl_client     |
|----------------|
| id             |
| pid            |
| company        |
| address        |
| projects       |
| ...            |
------------------

... same with tbl_member and tbl_admin.
但是在登录之后,如何从tbl_客户端、tbl_成员和tbl_管理员中选择其他字段? 我可以在tbl_user中使用group字段,并使用group表名作为值。但这似乎不太专业;)


还有其他想法吗?

您建议的是一个完全可以接受的解决方案-
tbl\u用户需要以某种方式识别用户类型。您可以将字符串替换为
id
,如果这样更容易使用的话。确定用户类型后,您可以简单地加入任何适用的详细信息表,或直接查询详细信息表。

您建议的是一个完全可以接受的解决方案-
tbl\u用户需要以某种方式识别用户类型。您可以将字符串替换为
id
,如果这样更容易使用的话。确定用户类型后,您可以简单地加入任何适用的详细信息表,或直接查询详细信息表。

我不知道您为什么说“它似乎不专业”。您正在将用户数据角色从用户身份验证信息中分离出来。你的建议没有什么问题,我会推荐它…

我不知道你为什么说“它看起来不专业”。您正在将用户数据角色从用户身份验证信息中分离出来。您的建议没有问题,我建议您……

我建议在
tbl\u user
中添加另一列,说明它是什么类型的帐户。e、 管理员、会员、客户,这样你就可以在他们登录后引导他们找到你需要的任何东西,并且你可以提取他们的信息

我建议在
tbl_user
中添加另一列,说明它是什么类型的帐户。e、 管理员、会员、客户,这样你就可以在他们登录后引导他们找到你需要的任何东西,并且你可以提取他们的信息

您可以在所有三个表上进行outter联接


这将返回所有三个表的结果,其中两个表的结果为空(因为它们不存在)。这是效率较低的,因为您要连接四个表(用户、成员、客户机、管理员),然后添加一个附加字段以指定该成员是哪个组的一部分,并仅使用一些逻辑查询该表。

您可以对所有三个表进行外部连接


这将返回所有三个表的结果,其中两个表的结果为空(因为它们不存在)。这会降低效率,因为您要连接四个表(用户、成员、客户、管理员),然后添加一个附加字段来指定该成员所属的组,并仅使用一些逻辑查询该表。

感谢大家说服我使用一个tbl_user.group字段来指定用户goup(客户、成员、管理员)并将表tbl_user.id连接到tbl_*.pid上。我试着接受所有的答案,不幸的是只有一个答案是可能的,所以我从Ryan Bates那里选择了第一个。但也要感谢Capn、Dalton Conley和Jim。感谢大家说服我使用一个tbl_user.group字段来指定用户goup(客户端、成员、管理员)并加入tbl_*.pid上的表tbl_user.id。我试着接受所有的答案,不幸的是只有一个答案是可能的,所以我从Ryan Bates那里选择了第一个。多亏了卡恩,道尔顿·康利和吉姆。