Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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 针对3种不同用户类型的数据库设计指南_Php_Mysql_Database Deadlocks - Fatal编程技术网

Php 针对3种不同用户类型的数据库设计指南

Php 针对3种不同用户类型的数据库设计指南,php,mysql,database-deadlocks,Php,Mysql,Database Deadlocks,我正在用mySQL和PHP创建我的第一个web应用程序,只是想寻求一些指导,以确保我的思路正确。。。或者不是 它将有3种类型的用户会员,俱乐部和管理员 我现在让他们都通过同一个登录页面登录,一旦登录,他们就会进入同一个“仪表板”,但仪表板的内容会根据用户类型通过条件语句进行更改。在安全等方面,这是一个明智的想法吗 我目前的简化表格结构是: users {id, username, hashed_password} members {id, user_id, first_name, last_

我正在用mySQL和PHP创建我的第一个web应用程序,只是想寻求一些指导,以确保我的思路正确。。。或者不是

它将有3种类型的用户<代码>会员,
俱乐部
管理员

我现在让他们都通过同一个登录页面登录,一旦登录,他们就会进入同一个“仪表板”,但仪表板的内容会根据用户类型通过条件语句进行更改。在安全等方面,这是一个明智的想法吗

我目前的简化表格结构是:

users   {id, username, hashed_password}
members {id, user_id, first_name, last_name, email, address, tel, cleared_activities}
clubs   {id, user_id, club_name, address, tel, available_activities}
admins  {id, user_id, first_name, last_name, email, address, tel}
这张桌子的设计能改进一下吗?我意识到类似的领域,尤其是
成员
管理员
之间,这让我认为可能有更好的方法


非常感谢

因为所有的成员和管理员都是用户,所以我会使用一个表为用户、成员和管理员添加一个额外的字段“usertype”

然后,我将添加一个仅用于成员的表,该表将包含所有特定于成员的额外字段

users       {id, username, hashed_password, first_name, last_name, email, address, tel, user_type}
member_data {user_id, cleared_activities}
clubs       {id, user_id, club_name, address, tel, available_activities}
如果额外的成员字段就是您提到的那个字段,您也可以将其保留在users表中。对于非成员类型的用户,此字段将具有空值

users       {id, username, hashed_password, first_name, last_name, email, address, tel, user_type, cleared_activities}
clubs       {id, user_id, club_name, address, tel, available_activities}

姓名、姓氏、电子邮件、地址、电话
移动到
用户
表格?并删除
成员
管理员
-您不需要them@DmitryTeplyakov你会说省略名字和姓氏,并将它们保留在会员和管理员表中,因为“俱乐部”会员没有名字和姓氏,只有俱乐部名称吗?不会。你只能使用两个表-用户和俱乐部。俱乐部成员(和管理员)将有名字和姓氏_name@DanielGrander,并将
类型
字段添加到
用户
表中,以了解这个类似@codingstill的用户在下面所说的类型;)事实上,members表将有更多仅对成员唯一的字段,因此您的顶级解决方案可能更适合我的情况。顶级解决方案作为一种设计更好,因为它更准确地表示应用程序的对象。但对于一个或两个额外的字段,将它们放在“用户”表中并不是什么大问题。