说明
以下结构中,表和表之间都是多对多的关系
- 程序员与项目
- 学生与选修课
玩家与装备
举例
在一些外包公司中,程序员经常需要维护多个项目,同时一个项目也可能被多个程序员维护,所以程序员与项目之间是多对多的关系
业务分析:一个程序员可以维护多个项目
- 一个项目也可被多个程序员维护
- 程序员与项目之间是多对多的关系
ER图分析
如何处理
在多对多的业务场景中,会设计一张中间表简化业务关系,将多对多转换成一对多
表结构组成
- coder表:id int ,name varchar,salary double;
- project表:id int ,name varchar;
- coder_project表:coder_id int,project_id int;
示例代码
``` — 程序员表 create table coder( id int primary key auto_increment, name varchar(20), salary double ); — 项目表 create table project( id int primary key auto_increment, name varchar(10) ); — 中间表 create table coder_project( coder_id int, project_id int ); — 添加测试数据 insert into coder values(1,’张三’,12000); insert into coder values(2,’李四’,15000); insert into coder values(3,’王五’,18000);
insert into project values(1,’QQ项目’); insert into project values(2,’微信项目’);
insert into coder_project values(1,1); insert into coder_project values(1,2); insert into coder_project values(2,1); insert into coder_project values(2,2); insert into coder_project values(3,2);
```
效果
coder表
project表
coder_project表
