美文网首页
多态关联和反向引用

多态关联和反向引用

作者: 賈小強 | 来源:发表于2019-03-24 23:06 被阅读0次

简书 賈小強
转载请注明原创出处,谢谢!

在面向对象中通过继承,子类具有了父类的东西,可以通过父类型的引用指向子类型的对象,这种能力被成为多态,如下图


继承与多态.png

而在关系型数据库中实际上也有继承,比如在一对多关系中,一的一方提供主键被称为父表,而多的一方用将父表的主键作为了外键被称为子表,由于这种引用关系,子表实际上具有了父表的东西,虽然只是引用形式的,如下图


父表与子表.png

如果按照面向对象的说法,也就说B表继承了A表,那么这里引出另一个问题,也就是面向对象中的多继承问题,假设B表同时继承了A表和C表,如下图


多继承.png

如图中说明的当一张表继承了另外多张表,那么需要多列外键,那么如果希望只用一个外键会怎么样呢?
答案是并不行,SQL不支持声明一个指向多张表的外键,但是有一个折中的方法,也就是不用外键,而通过通过增加一个类型列采用多态关联的形式

多态关联.png
但多态关联的并不是个好办法,查询的时候和对应表进行关联并带上类型,查询并不方便,实际上多态关联是一个反向引用,可以变成如下形式
反向引用.png
通过将表关系改成上面这种形式查询和修改将变的更加容易

Happy learning !!

相关文章

  • 多态关联和反向引用

    简书 賈小強转载请注明原创出处,谢谢! 在面向对象中通过继承,子类具有了父类的东西,可以通过父类型的引用指向子类型...

  • Java_basic_10: 多态polymorphism

    多态polymorphism 多态是指对象的多种形态 主要可以分为引用多态和方法多态 继承是多态的实现基础 引用多...

  • Flask-关系映射

    关系映射 一对多 在"多"表中增加外键关联,引用自"一"表中主键 在"一"表实现关联属性以及反向引用 一对一 A表...

  • 4. 【正则】子表达式、反向引用

    子表达式和反向引用 ()用来表示子表达式 \n 用来表示反向引用第n个表达式,\n出现几次,代表反向引用了几次。 ...

  • 多态

    一、多态 1、引用多态父类的引用指向本类的对象父类的引用指向子类的对象 继承是实现多态的基础 2、方法多态创建本类...

  • JAVA面试

    java 举例说明多态和重载区别多态性就是父类引用时被赋予不同的子类对象引用,从而表现出不同的行为,多态性为程序提...

  • JAVA学习之多态篇(五)

    多态=对象的多种形态 继承是多态的实现基础 一. 引用的多态 父类的引用可以指向本类的对象 父类的引用可以指向子类...

  • Java的多态特性

    多态:对象的多种形态 1、引用多态 父类的引用可以指向本类的对象父类的引用可以指向子类的对象 2、方法多态 创建本...

  • 2.4 多态(面向对象)

    1、Java中的多态 对象的多种形态 引用多态父类的引用可以指向本类的对象父类的引用可以指向子类的对象 方法多态创...

  • 多态

    多态 对象的多态性。多态在程序中的体现:父类的引用或者接口的引用指向了子类对象多态的好处:提高了代码的扩展性多态的...

网友评论

      本文标题:多态关联和反向引用

      本文链接:https://www.haomeiwen.com/subject/qnopvqtx.html