云盘数据库

文章目录

    • Company:
      • 建表:
      • 插入数据:
    • User:
      • 创建表:
      • 插入数据:
      • 尝试删表发现失败:
    • user_pwd:
      • 创建表:
      • 添加数据:
      • 查询:
    • obs_log(操作日志)
      • 创建日志表
    • 文件表

Company:

列名 数据类型 约束 备注
Company_name varchar(100) 主键
Address Varchar(100) 非空
Phone Varchar(30) 非空
Contact_person Varchar(20)
Date Datetime
State bool True可用,false不可用

建表:

create table company(
         company_name varchar(100) primary key,
         address varchar(100),
         phone varchar(30),
         contact_person varchar(20),
         date datetime,
         state bool,
);

插入数据:

insert into company values('
company of XXX','shanghai,china','010-124542','张先生','2020-07-11 16:05:30',true
);

User:

列名 数据类型 约束 备注
name Varchar(20) 唯一、非空
email Varchar(30) 非空 修改密码用
phone Varchar(30) 非空
is_admin_ bool 非空 判断是否是管理
state bool 非空 账号是否可用
company_name varchar(100) 外键 来自公司表

创建表:

create table user(
    name varchar(20) primary key,
    email varchar(30),
    phone varchar(30),
    is_admin bool,
    state bool,
    company_name varchar(100),
    FOREIGN KEY(company_name) REFERENCES company(company_name)
    );
    
    

插入数据:

insert into user values(
    '张三','[email protected]','152******70',true,true,'company of XXX'
);

尝试删表发现失败:

drop table company;

因为 company表对user表有外键约束

FOREIGN KEY(company_name) REFERENCES company(company_name)
这一句的意思是外键约束,当前company_name的值来自于company表中的company_name属性。

  1. 如果当前表插入 的company_name值,它在user的name属性中没有,则不允许插入。
  2. 在当前表没有删除的时候,如果有对company表的删除操作,那么它将会被拒绝。

user_pwd:

列名 数据类型 约束 备注
name Varchar(20) 主键、外键
pwd_md5 Varchar(32) 非空

创建表:

create table user_pwd(
	name varchar(20) primary key,
    pwd_md5 varchar(32),
    FOREIGN KEY(name) REFERENCES user(name)
);

添加数据:

insert into user_pwd values(
    '张三',
    '123456'
);

查询:

当用户输入账号和密码的时候,进行表的查询

select pwd_md5 from user_pwd where name = '张三';

obs_log(操作日志)

列名 数据类型 约束 备注
name Varchar(20) 主键、外键 主键、来自用户类
oper_time datetime 非空
action Varchar(20) 非空

创建日志表

create table obs_log(
    name varchar(20) primary key,
    oper_time datetime,
    action varchar(20),
    FOREIGN KEY(name) REFERENCES user(name)
    );

文件表

列名 数据类型 约束 备注
File_path Varchar(100) 联合主键 文件路径
File_name Varchar(50) 文件名
File_md5 Varchar(32) 暂时允许不填
Create_time datetime 创建时间
Owner Varchar(32) 外键 所属人,来自用户表
create table file(
    file_path varchar(100),
    file_name varchar(50),
    file_md5 varchar(32),
    PRIMARY KEY(file_path, file_name)
)

你可能感兴趣的:(网络安全)