我需要创建一个用于用户身份验证的基本数据库。到目前为止,每个用户都有一个名称、密码和角色。我在互联网上的某个地方找到了这个,看起来很有希望:
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
桌子?我有一种感觉,有某种“自动方式”可以做到这一点,但我完全不知道(作为一个数据库菜鸟:-))。我怎样才能以某种方式将用户连接到角色?
您首先要填充roles
桌子。然后,添加一个用户到users
桌子。然后,从users
表,您希望将其与来自roles
表里面的user_roles
桌子。就像这样:
---- 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
-------------------------------
这是针对“多对多”关系完成的。它也称为“规范化”数据库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)