数据库表之间的关系

				数据库表之间的关系

开发工具与关键技术:Visual
Studio 2015   表与表之间的关系处理

作者:廖 茂

撰写时间:2019年06月26日

做项目最重要的就是数据库,数据库没做好,那么后面的功能实现就会出现问题,数据库创建时,表与表之间的关系至关重要,如果处理不好,那么将无法对表进行数据的插入与修改,表与表之间有着一对多、多对多的关系,现在先来看一对多的关系,表格如下:
在这里插入图片描述

我们都知道,一个航班中有多个票价,一个票价只能对应一个航班,所以如果按照上面的
连接方向来连接两张表的话,用Excel来显示的表格数据如下:
在这里插入图片描述

可以看到,一个航班只能对应一个票价,而一个票价却可以对应多个航班,这样就不符合实际的逻辑关系了,所以为了符合实际的逻辑关系,连接的方向应该反过来,如下:
在这里插入图片描述

反过来连接之后,在Excel显示的数据自然也会改变,如下:
在这里插入图片描述

可以看到,一个航班中有多个票价,一个票价也只能,这样就符合实际的逻辑关系了,毕竟在一个航班中有头等舱票价、公务舱票价、经济舱票价三个基本票价,而每个不同的航班,票价也有所不同,所以需要理清两个表之间的关系,否则在查询航班的票价时只能查到一个票价,新增票价也只能新增一个。

一对多的关系处理完了,接下来就看一下多对多的关系应该如何处理,首先看一下表格,如下:
在这里插入图片描述

旅客信息表和订单表之间又有着什么样的关系?一个订单上可以只有一位旅客,但也可以有多位旅客,就好比如发票,如果只买一样东西,那么发票上就只有一条商品数据,如果买多样东西,那一张发票上就有多条数据了。订单对旅客的关系已经明白,那么旅客对订单的关系也是如此,一个旅客可有多个订单,因为旅客可以查询历史订单,历史订单也不止一条,所以一位旅客可以有多个订单,问题来了,一个订单上面可以有多位旅客,而一位旅客也可以有多个订单,如何连接两张表?,不是两张表相互连接,需要再创建一张表,如下:
在这里插入图片描述

从上面可以看出,新建一张订单明细表,分别连接旅客信息表和订单表,通过两张表的主键获取数据,让两张表的数据同时存放在订单明细表中,在Excel中显示的数据如下:
在这里插入图片描述

可以看到,ID为1的订单里面有三位旅客,这是符合实际的逻辑的,还可以看到,ID为1的旅客有三个订单,这也是符合逻辑的,这样的话,我们在新增订单时不会出现数据冗余和数据混乱,对数据的维护更有利。

所以在搭建前端页面和编写后端控制流程之前,一定要把数据库建好,否则会在编写后端的功能控制流程代码时会出现一系列问题,然后就需要去修改数据库,甚至数据库崩溃,需要重建,一切推翻重做。

  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金色的暗影

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值