map中的 string 多了一对双引号_Mysql中的一对一 一对多 多对多

8aef751efc868906a323ed2d75ea12be.png

Mysql关系型数据库设计中存在着三种关系:一对一,一对多,多对多

今天详细的总结下

一对一: 表中的一列对应着另外表中一列

这种一一对应的关系并不常见。一一对应的列可以放在一个表里面,但是这样做一定有原因,例如,把一个大表分成若干小表,可以确保安全,防止信息泄露。对于工资信息表,每小时的工资钱数对于不同岗位的人员有所区别,敏感的信息除了统计工资的工作人员之外,其他人不能看到。这列数据经常被放在一个单独的表里面。

一对多:表中的一列对应另外表中的几列

这种关系在关系型列表中最常见。在旅游表格中,城市列表中的城市可以对应顾客信息表中,顾客的各种信息,联系方式,年龄地址等。

多对一:表中的多列对应另外表中的多列

可以将多对多关系视为通过中间表连接的两个一对多关系。
中间表通常称为“连接表”(也称为“交叉引用表”)。该表用于将其他两个表连接在一起。
举例子:

为了在“客户”表和“产品”表之间创建多对多关系,我们创建了一个名为“订单”的新表。在“订单”表中,有一个名为CustomerId的字段和另一个名为ProductId的字段。

这些字段包含的值应与引用表中相应字段中的值相对应。因此,Orders.CustomerId中的任何给定值也应该存在于Customer.CustomerId字段中。

如果不是这种情况,那么我们可以为实际上不存在的客户提供订单。我们还可以订购不存在的产品。不能满足参照完整性。


大多数数据库系统允许指定数据库是否应强制执行参照完整性。因此,当用户(或流程)尝试插入主键字段中不存在的外键值时,将发生错误。Orders.CustomerId字段是Customer.CustomerId的外键(这是该表的主键)。而且Orders.ProductId字段是Products.ProductId字段的外键(这是该表的主键)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值