中间表-多对多关系的转化:

在表的使用中,经常存在多对多的关系,以订单和商品为例,一个订单对应多个商品,一个商品也对应多个订单,此时把E-R图(E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型)转化为关系模型时,需要引入中间表。

中间表包含两个实体类的主键,建立两张表沟通。

中间表也可以有普通字段,例如商品数量,每种商品总和(需要把他们与实体表中字段含义区分开)。

中间表主键:

中间表的主键可以是两个外键作为联合主键( 联合主键就是说,当一个字段可能存在重复值,无法确定这条数据的唯一性时,再加上一个字,两个字段联合起来确定这条数据的唯一性。比如你提到的id和name为联合主键,在插入数据时,当id相同,name不同,或者id不同,name相同时数据是允许被插入的,但是当id和name都相同时,数据是不允许被插入的),也可以是再增加一个主键字段。

三个实体间存在多对多的关系:

有一个实体与剩下两个实体存在N:M关系,剩下两个实体没有

三个实体间存在多对多关系

中间表简述:

中间表是业务逻辑中的概念,就是将计算结果先保存在一个临时的表中,然后再从这个表中计算,减少程序的复杂度。临时表是中间表多采用的一种技术,使用 Oracle临时表功能可以免去中间表数据的维护工作。

中间表举例:

分析表1(tableOne),找到唯一的业务主键,这是一个班级课程表,存储了课程的信息,主键就id。

分析表2(tableTwo)找到唯一的业务主键,这是一个课程单元表,存储了所有课程单元。

因为课程表和单元表没有关联信息,所以无法关联查询,这时需要中间表把两个表进行关联。

建立索引。

查询测试。

检验测试查询结果。

数据表(中间表)的设计:多对多关系相关推荐

  1. ORACLE数据库设计 多对多关系

    关于数据库两张表多对多的关系设计,之前以为多对多关系,只要两张表存在各自对方表的主键就行.而这种理解是错误的,总结如下. 数据库多对多表设计,假设使用主外键关系设计多对多表关系,会造成: 1.对一张表 ...

  2. php创建多个数据表,PHP-无法在数据透视表中创建多个多对多关系

    我正在尝试在Laravel 5中创建一个应用程序,该程序可以跟踪患者的体检,以便创建患者历史记录,我使用Eloquent作为模型抽象建议. 为此,我使用laravel迁移创建了三个表和一个枢轴表,如下 ...

  3. mysql表与表之间常见的映射关系_数据库表关联关系的基础知识

    表与表之间的关联关系一共有三种类型,一对一.多对一.和多对多,下面我们分别对这三种类型展开进行讨论. 一对一 表示两个表中的数据必须是一一对应的关系.这种场景其实并不是很常见,我们还是通过例子来直观地 ...

  4. java多对多的存储_Swift CoreData,通过多对多关系保存数据

    对于任何或所有,我正在寻找有关Swift CoreData的一些功能的帮助,特别是在将数据保存到两个具有"多对多"关系的实体时 . 我已经搜索了这个网站,我也参加了三个不同的uDe ...

  5. hibernate的多对多关系中对inverse属性的设置

    现有user,role和user-role表,user-role为两表中间的关系表,两表为[多对多关系] 现给role(被动)设置inverse="true"(放弃对关系的维护,即 ...

  6. 数据表设计:中间表——多对多关系E-R图转换

    设计数据表,遇到一个很常见的情况. 一.中间表-多对多关系的转化 实际中,经常存在多对多关系.以订单和商品为例,一个订单对应多个商品,一个商品也对应多个订单.此时在将E-R图转化为关系模型时,需要引入 ...

  7. MySQL数据表的结构和设计及三范式

    文章目录 数据表的结构 数据表 列 行 冗余字段 主键 外键 表外键关系 1对1 1对n m对n 数据库表的设计 E-R图 实体 属性 关系 设计原则 三范式 ①原子性 ②非主属性依赖 ③传递性依赖 ...

  8. PLSQL如何将千万数据快速插入到另一张表中_数据库设计中的 9 大常见错误

    作为数据库设计人员,当我们负责数据库项目时,在数据库设计以及把数据库部署到生产环境的过程中可能会遇到一些挑战. 其中一些问题不可避免,也无法控制.但是,其中相当一部分可以追溯到数据库设计本身的质量.我 ...

  9. 商品表设计-实现侧滑栏类目Catagory和商品的多对多关系

    商品表设计-实现侧滑栏类目Catagory和商品的多对多关系 需求描述 手机端展示店铺或商城类页面 -- 一般有个左边侧滑栏(slidebar),一般为类目,也可以称为种类.右边为商品的详情展示.如下 ...

最新文章

  1. 如何使Git“忘记”已跟踪但现在位于.gitignore中的文件?
  2. dat关闭某进程_超详细解析!工程师必会的Linux进程间通信方式和原理
  3. c语言求泰勒正弦公式,用泰勒公式求sin(x)的近似值
  4. Nginx+Tomcat负载均衡、动静分离集群
  5. Content-Disposition 响应头,设置文件在浏览器打开还是下载
  6. Oracle中exists与in的效率探讨
  7. linux 多个秘钥,linux管理多个ssh公钥密钥
  8. python的基础_毫无基础的人如何入门 Python ?
  9. 浙江省二级java考试_2020年浙江省高校计算机二级Java考试大纲
  10. 特殊符号大全复制_上榜!4.15特殊符号大全优美的制作网名符号案例分享,适合微信游戏昵称...
  11. 恒指2.25日预测及操作建议
  12. Dao和Repository,你还傻傻分不清吗?
  13. commit节点号 git_Git调整commit之间顺序
  14. OpenJudge 7624 山区建小学
  15. matlab编程999玫瑰花,网上收到的用matlab画玫瑰花的代码怎么不行啊,报告错误,求大神...
  16. win7更改锁屏壁纸-强迫症系列
  17. 蓝桥杯——PWM / PWM定时器捕获频率和占空比
  18. python实现自动化查谁没交作业
  19. Multisim电路仿真-验证KCL和KVL
  20. crc-16 ccitt标准在哪里可以看到详细的

热门文章

  1. SWUSTOJ #1058 无向图顶点度的计算
  2. 克服这些交易过程中的人性弱点,你才能更好的把握行情
  3. 苹果高通诉讼之争 会成下个苹果VS爱立信吗?
  4. 双击打开word很慢,当其他方式打开word则正常
  5. 如何选择一个适合自己并且有前景的职业?
  6. 涉密计算机应当拆除涉密哪些部件,在选购涉密计算机时应特别注意什么
  7. 利用彩虹表破解Hash
  8. android笔试汇总
  9. 零基础学Nginx【2】| Nginx 常用的命令和配置文件
  10. 【判断字符的合法性】