数据 库的设计
多表之间的关系
- 一对一:
人和身份证,一个人只有一个身份证,一个身份证值能对应一个人 - 一对多:
部门和员工
一个部门有多个员工,一个员工只能从属于一个部门 - 多对多
学生和课程
一个学生可以选择多门课,一门课程可以被多个学生选择
数据库设计的范式
多对多 表的第三张表的建立
create table teb_favorite(
rid int ,-----线路id
data datatime,
uid int ,-----用户id
primary key (rid,uid),
foreign key (rid) referencs tab_route(rid),
foreign key (uid) references tab_user(uid)
);
多表查询
- 笛卡尔积:
有两个集合,取这两个集合的所有组合情况
要完成多表查询,需要消除无用的数据。 - 多表查询的分类
- 隐式内连接:使用where 条件 消除无用数据
select * from emp,dept;
问题:笛卡尔积
解决办法:
select t1. name,
t1.gender,
t2.name
from emp t1,
dept t2,
where t1.'dept_id'= t2.'id'