MySQL数据库设计:一个用户表,两个用户组?
问题描述:
我建立一个旅游平台,我计划有以下用户表:MySQL数据库设计:一个用户表,两个用户组?
USERS:ID,用户名,密码,电子邮件,名字,姓氏,说明,picture_path
我的目标是有两组用户:
- 旅游经营者
- 游客
当旅游运营商登录时,我希望系统认识到他来自“旅游经营者”小组,以便将他的不同信息显示给他,就好像他是“游客”组的一部分一样。
我的问题:在我的数据库设计中实现这两个用户组的最佳方式是什么?
答
你应该有UserCategories
表:
CREATE TABLE `UserCategories` (
UC_ID INT PRIMARY KEY AUTO_INCREMENT,
IC_Title VARCHAR(100)
)engine=innodb;
然后在你的users表中有一个名为CategoryID
列,并把它引用在UC_ID = CategoryID
UserCategories
表。
这样,你就会知道哪些种类中的用户属于我会做到这一点无论是其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'
或者你可以抓住特定用户类别的所有权限,并查看是否当前登录的用户必须执行该操作该权限。
答
这样做的一个简单方法是在存储组类型的USERS表中添加一列。例如:groupType
可以存储operator
或tourist
,根据该值,可以显示或隐藏页面中的内容。
所以你建议三个单独的表:1)用户,2)UserCategories,3)权限。将用户表与usercategories表链接起来的SQL命令是什么? –