数据库的 一对多、多对一、一对一、多对多 关系

关联映射:一对多/多对一

存在最普遍的映射关系,简单来讲就如球员与球队的关系;

一对多:从球队角度来说一个球队拥有多个球员 即为一对多

多对一:从球员角度来说多个球员属于一个球队 即为多对一

数据表间一对多关系如下图:

关联映射:一对一

一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。

数据表间一对一关系的表现有两种,一种是外键关联,一种是主键关联。图示如下:

一对一外键关联:

一对一主键关联:要求两个表的主键必须完全一致,通过两个表的主键建立关联关系

关联映射:多对多

多对多关系也很常见,例如学生与选修课之间的关系,一个学生可以选择多门选修课,而每个选修课又可以被多名学生选择。

数据库中的多对多关联关系一般需采用中间表的方式处理,将多对多转化为两个一对多。

数据表间多对多关系如下图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库一对多关系指的是一个表的一条记录对应另一个表的多条记录,而多对多关系则指的是两个表之间互相对应多条记录。下面是一些关于这两种关系的介绍和示例: 1. 一对多关系 假设我们有两个表,一个是订单表,一个是订单详情表。一个订单可以对应多个订单详情,因此订单表和订单详情表之间就存在一对多关系。在订单详情表,通常会有一个外键,指向订单表的订单ID。 ```sql -- 创建订单表 CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_name VARCHAR(50), order_date DATE ); -- 创建订单详情表 CREATE TABLE order_details ( detail_id INT PRIMARY KEY, order_id INT, product_name VARCHAR(50), quantity INT, price DECIMAL(10, 2), FOREIGN KEY (order_id) REFERENCES orders(order_id) ); ``` 2. 多对多关系 假设我们有两个表,一个是学生表,一个是课程表。一个学生可以选修多门课程,一门课程也可以被多个学生选修,因此学生表和课程表之间就存在多对多关系。为了实现多对多关系,我们需要创建一个关系表,用于存储学生和课程之间的对应关系。 ```sql -- 创建学生表 CREATE TABLE students ( student_id INT PRIMARY KEY, student_name VARCHAR(50) ); -- 创建课程表 CREATE TABLE courses ( course_id INT PRIMARY KEY, course_name VARCHAR(50) ); -- 创建关系表 CREATE TABLE student_courses ( id INT PRIMARY KEY, student_id INT, course_id INT, FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (course_id) REFERENCES courses(course_id) ); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值