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