Decoration6:改数据结构为继承的关系

Posted 闲鱼编程笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Decoration6:改数据结构为继承的关系相关的知识,希望对你有一定的参考价值。

一个家装市场有各种登录的角色:设计师、业主……

这些角色有一些共同的字段,例如passWord,userName,age等等,但是分别又有自己的一些特殊字段,例如设计师要写自己的设计经历,业主可能要有自己的楼号等等。这在数据库设计上符合主扩展模式,也就是分成主表和扩展表,主表包含基本的信息,若干扩展表继承了主表的字段,同时增加了自己的独特字段。

这样所有用户的主键都遵循同一个序列,子表的外键关联主表的主键,也是自己的主键。

在JAP上,设计User实体为抽象的父级实体,Desing、Owner两个实体继承自User,这里有个知识点:JPA的映射策略,这里不在展开说,Internet上一搜一大把。我这里只应用InheritanceType.JOINED类型的继承关系。

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class User {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;
    ……  
}

@Entity
public class Owner extends User  {
    private int buildNum;
    ……
}

可见子表Owner默认增加了一列ID作为键值使用

 

以上是关于Decoration6:改数据结构为继承的关系的主要内容,如果未能解决你的问题,请参考以下文章

NHibernate总结

面向对象设计原则九:组合/聚合复用原则

JS中构造函数、实例、原型对象之间的关系

Java面向对象特性

tiny_cnn代码详解——层间继承关系

java继承