在数据库表中实现表继承一般来说有3种实现方式: Concrete Table Inheritance(具体表继承) Single Table Inheritance(单表继承) Class Table Inheritance(类表继承)。
比如有一只鸭子,它有属性是:动物,会叫,两只脚。来了一只可达鸭(除了鸭的属性,还有会唱可达歌),又来了一只大黄鸭(除了鸭的属性,会跳大黄鸭之舞),它们各有各自的属性。
1.具体表继承
具体表现:不建立父对象,将父对象的所有属性转移到子对象中,为每个子对象建立对于的表。建可达鸭表和大黄鸭表。
2.单表继承
具体表现:在一个宽表中列出所有父对象和子对象的属性,同时用一个标识列表示该行数据存储的是哪个子类的数据。多一个type字段,用来指明是什么鸭。
3.类继承表
具体表现:对父对象和每个子对象建立一个对应的表,然后在子表中设置该子表的主键为与父表关联的外键。给他们新增一个字段,鸭的id。这个id,在两张字表中,即表示主键,又表示外键。