我是数据库设计的新手,正在做学校项目。我有 3 个表(Users
和Roles
)User_roles
。我已经创建了可供用户使用的所有用户和角色。我创建了User_roles
包含用户和分配给他们的角色的表。
我需要获取一个查询,该查询将为我提供所有用户、所有可用角色以及它们是否分配给用户。我的目标是列出所有可用的用户和可用的角色,以便我可以分配或删除访问权限。
我如何实现这一目标?
以下是表的架构
Users
(
`user_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`username` VARCHAR(45) NULL ,
`password` VARCHAR(45) NULL ,
`first_name` VARCHAR(45) NULL ,
`last_name` VARCHAR(45) NULL ,
`Status` VARCHAR(45) NOT NULL DEFAULT 'Active' ,
`date_from` DATE NULL ,
`date_to` DATE NULL ,
`created_by` VARCHAR(45) NOT NULL DEFAULT 'Sysadmin' ,
`create_date` TIMESTAMP NOT NULL DEFAULT now() ,
PRIMARY KEY (`user_id`)
Roles Tables
`role_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`role_name` VARCHAR(45) NOT NULL ,
`date_from` DATETIME NULL DEFAULT '2000-01-01' ,
`date_to` DATETIME NULL DEFAULT '2999-12-31' ,
`created_by` VARCHAR(45) NOT NULL DEFAULT 'Sysadmin' ,
`create_date` TIMESTAMP NOT NULL DEFAULT now() ,
PRIMARY KEY (`role_id`)
User_role Table
`user_role_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`user_id` INT UNSIGNED NOT NULL ,
`role_id` INT UNSIGNED NOT NULL ,
PRIMARY KEY (`user_role_id`) ,
CONSTRAINT `fk_User_roles_Users1`
FOREIGN KEY (`user_id` )
REFERENCES `Users` (`user_id` )
ON DELETE cascade
ON UPDATE cascade,
CONSTRAINT `fk_User_roles_Roles1`
FOREIGN KEY (`role_id` )
REFERENCES `Roles` (`role_id` )
ON DELETE cascade
ON UPDATE cascade
我的目标是从表用户中选择所有用户并显示可分配的角色以及是否已分配
例如
User_id Role_id Role_allocated
相似的东西