- 一、实体层
作用:减少冗余应该用节约内存更合适,就是说如果存类型可能就是一串中文,但是用了字典表之后 可以用几个数字代替 节约数据内存;
主要的意义还是对数据的类型,数据状态的管理 ,我们有时候为了方便,直接在数据库存1/2/3这种数据,如果换一个来维护就看不懂了 但是有字典表就可以根据字典表翻译出实际的信息
2. 关联关系:字典分类和字典项是父与子,一对多(逻辑理解)的关系,对于字典项和字典分类的关系是多对一的关系,字典分类本身也是具有树的层级关系,根据spring data jpa 的规范:
①在字典项建立外键关系:@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "directory_id")
【采集数据项目后端总结(二)—字典管理】②对于字典分类有两个层级关联,一个是与自身建立关联关系(在字典分类的数据库设计中,起始id即为父字典分类(一对多),此时增加parentId字段为null, 以后的id均与父id行的parentId字段 产生关联,这样便构起树结构);另一个是与字典项构建一对多的关联,用 注解@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)表示关联字典项,这里的cascade设定级联,CascadeType.ALL表示对映射的对象拥有增删改查功能,只要在主(父)表改变即可让子表(字典项)发生改变;
提醒:如果非业务需要通常让多的表维护关联关系,而主表使用mapperBy=" 主表在子表的属性"即可