多表之间的关系
一对一的关系:(例:一个人只有一个身份证,一个身份证只能对应一个人)
实现方式:可以在唯一一方添加添加唯一外键指向另一方主键
一对多的关系:(例:一个部门有多个员工,一个员工只能对应多个部门)
实现关系:在多的一方建立外键,指向一方的主键
多对多的关系:(例:一个学生可以选择很多门课程,一个课程也可以被很多学生选择)
实现关系:需要借助第三张中间表,中间表最少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键
案例
CREATE TABLE tab_category( cid INT PRIMARY KEY AUTO_INCREMENT, CNAME VARCHAR(100) NOT NULL UNIQUE ); CREATE TABLE tab_route( rid INT PRIMARY KEY AUTO_INCREMENT, rname VARCHAR(100) NOT NULL UNIQUE, price DOUBLE, rdate DATE, cid INT, foreign KEY (cid) REFERENCES tab_category(cid) ); CREATE TABLE tab_user( uid INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(100) UNIQUE NOT NULL, password VALUES(30) NOT NULL, name VARCHAR(100), birthday DATE, sex CHAR(1) , telephone VARCHAR(11), email VARCHAR(100) ); CREATE TABLE tab_favorite( rid INT, DATE DATETIME, uid INT, PRIMARY KEY(rid,uid), FOREIGN KEY(rid) REFERENCES tab_route(rid), FOREIGN KEY(uid) REFERENCES tab_user(uid) );
数据库设计的范式
概念:设计数据库是需要遵循的规范
备份与还原
命令行 mysql-u用户名-p密码->保存路径 执行:source 保存路径
图形化工具