Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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 - Fatal编程技术网

Php MySQL数据库设计:一个用户表,两个用户组?

Php MySQL数据库设计:一个用户表,两个用户组?,php,mysql,Php,Mysql,我正在构建一个旅游平台,我计划拥有以下用户表: 用户:id、用户名、密码、电子邮件、名、姓、描述、图片路径 我的目标是拥有两组用户: 旅行社 游客 当一个旅游经营者登录时,我希望系统能够识别出他来自“旅游经营者”团队,这样不同的信息就会显示给他,就好像他是“旅游者”团队的一员一样 我的问题:在我的数据库设计中,实现这两个用户组的最佳方法是什么?一种简单的方法是在用户表中添加一列,该列存储组的类型。例如:groupType可以存储operator或tourism,根据该值,您可以在页面中显示或隐藏

我正在构建一个旅游平台,我计划拥有以下用户表:

用户:id、用户名、密码、电子邮件、名、姓、描述、图片路径

我的目标是拥有两组用户:

  • 旅行社
  • 游客
  • 当一个旅游经营者登录时,我希望系统能够识别出他来自“旅游经营者”团队,这样不同的信息就会显示给他,就好像他是“旅游者”团队的一员一样


    我的问题:在我的数据库设计中,实现这两个用户组的最佳方法是什么?

    一种简单的方法是在用户表中添加一列,该列存储组的类型。例如:
    groupType
    可以存储
    operator
    tourism
    ,根据该值,您可以在页面中显示或隐藏内容。

    您应该有
    用户类别
    表:

     CREATE TABLE `UserCategories` (
        UC_ID INT PRIMARY KEY AUTO_INCREMENT,
        IC_Title VARCHAR(100)
     )engine=innodb;
    
    然后在用户表中有一个名为
    CategoryID
    的列,并在
    UC\u ID=CategoryID
    上引用
    UserCategories

    通过这种方式,您将知道用户属于哪个类别,无论是其
    操作员
    ID1还是
    游客
    ID2

    我这样做的方式是让另一个表调用它
    Permissions
    ,它引用用户类别的权限。这样,您就可以自定义游客应该拥有的访问方式

    更新:

       SELECT COLUMN1, COLUMN2 ...
       FROM users
       INNER JOIN UserCategories ON UC_ID = CategoryID
       INNER JOIN Permissions ON UC_ID = PCategoryID
       WHERE Permission = 'update_data' OR Permission = 'delete_data'
    

    或者,您可以获取特定用户类别的所有权限,并查看当前登录的用户是否具有执行该操作的权限。

    因此,您建议使用三个单独的表:1.)用户,2.)用户类别,3.)权限。将我的users表与usercategories表链接的SQL命令是什么?