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

时间:2014-05-21 17:10:57

标签: php mysql

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

  

USERS :id,username,password,email,first_name,last_name,description,picture_path

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

  1. 旅行社
  2. 游客
  3. 当旅行社登录时,我希望系统能够识别出他来自小组"旅游运营商"这样就可以向他展示不同的信息,就像他是“游客”的一部分一样。基。

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

2 个答案:

答案 0 :(得分:0)

这样做的一种简单方法是在USERS表中添加一个列,用于存储组的类型。例如:groupType可以存储operatortourist,并且根据该值,您可以在页面中显示或隐藏内容。

答案 1 :(得分:0)

你应该有UserCategories表:

 CREATE TABLE `UserCategories` (
    UC_ID INT PRIMARY KEY AUTO_INCREMENT,
    IC_Title VARCHAR(100)
 )engine=innodb;

然后在您的users表中有一个名为CategoryID的列,并在UserCategories上引用UC_ID = CategoryID表。

通过这种方式,您可以了解哪个类别用户属于operator ID 1还是tourist ID 2。

我这样做的方法是我会有另一个表调用Permissions来引用UserCategories的权限。这样,您就可以自定义Tourists应具有的访问权限。

<强>更新

   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'

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