我需要创建一个用于用户身份验证的基本数据库。到目前为止,每个用户都有一个名称,一个密码和一个角色。我在Internet上的某个地方找到了它,这看起来很有希望:
create table if not exists users ( id int unsigned not null auto_increment, username varchar(100) not null, password binary(60) not null, primary key(id), unique(username) ); create table if not exists roles ( id int unsigned not null auto_increment, role varchar(100) not null, primary key(id), unique(role) ); create table if not exists user_roles ( user_id int unsigned not null, role_id int unsigned not null, unique(user_id, role_id), index(user_id) );
但是…如果我要创建新用户,该如何填写user_roles表格?我感觉有某种“自动方式”可以做到这一点,但是我完全不知道(成为数据库菜鸟:-)。如何以某种方式将用户连接到角色?
user_roles
您将首先填充roles表格。然后,将用户添加到users表中。然后,从users表中获取ID ,您要将其与roles表内部user_roles表中的ID关联。像这样:
roles
users
---- Users Table --------- ID | UserName | Password 1 | Test | ***** -------------------------- ---- Roles Table --------- ID | Role 1 | Test_Role 2 | Another_Role -------------------------- ---- User Roles Table --------- UserID | RoleID 1 | 1 1 | 2 -------------------------------
这是针对“多对多”关系完成的。它也被称为“规范化”您的数据库。