用户模块数据库设计
数据库逻辑结构设计(将E-R图转表结构)
数据库物理结构设计(将表结构转为sql代码)
编写SQL代码
创建用户模块的三个实体
用户 Token 持有者
约束说明:用于保证数据的完整性
1)主键约束(primary key) 保证数据的唯一性
2)非空(not null) 录入数据时不能为空
3)外键(foreign key) 用于设置表与表之间的关联
语法:
alter table 从表名 add constraint 约束名称 foreign key(从表字段) references 主表名(主表字段)
enum('0','1','2',)枚举类型 只能是字符类型
代码:
#创建数据库
create database Demo;
#使用数据库
use demo;
#在数据库中创建多个数据表
#用户实体表
create table userinfo
(
id char(32) primary key not null,#用户编号
username varchar(32) not null,#用户名称
password varchar(32) not null,#用户密码
login_time datetime null,#登录时间
user_type enum('0','1','2') not null,#用户类型 0 1 2
resuit_time datetime null ,#注册时间
emeil varchar(100) not null ,#邮箱
user_status enum('0','1') not null #用户状态 0 1
);
#查看表
select * from userinfo;
#添加用户数据
insert into userinfo values('1002','李四','abc123','2022-3-17','1','2021-2-12','34324@qq.com','0');
#Token实体表
create table Token
(
id char(32) primary key not null,
token_value varchar(100) not null,
token_status int not null,
user_id char(32) not null
);
#设置外键
alter table Token add constraint fk_id foreign key(user_id)
references userinfo(id);
#添加数据
insert into Token values('tok001','李四',0,'1001');
insert into Token values('tok002','李四',0,'1002');
select * fROM Token;
#持有者实体表
create table CYZ
(
id char(32)primary key not null,
user_id varchar(100) not null,
bind_status int not null,
device_id char(32) not null
)
#设置外键
alter table CYZ add constraint fk_id2 foreign key(user_id)
references userinfo(id);
#添加数据
insert into CYZ values('cyz001','1001',0,'sb001');
select * from CYZ;