首页 > 代码库 > Decoration6:改数据结构为继承的关系

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;    ……  }@Entitypublic class Owner extends User  {    private int buildNum;    ……}

技术分享

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

 

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