数据库表设计

Time: 2024-11-02 Saturday 15:34:01
Author: Jackasher

数据库表设计

对象分析

image-20241022195816957

我感觉吧,就是根据前端数据表单分析,首先这个添加仓库, 肯定就是一个 VO 类接受, 然后,材料和仓库肯定是另外的表, 那么这个表自身的就应该是 id, 申请人,审核人,申请时间,然后操作每个表处理数据就可以了

image-20241022202537563

我以前呢只知道数据库表对应一个类, 前端传入一个类,然后直接修改数据库, pojo 就是代表数据库类, 后来知道有一种叫 Vo,对应前端传入的对象,简单的话直接就对应一张表了, 不能是表的一部分, 麻烦的话就是含有多个表,要把里面的数据取出来, 封装在数据库的 pojo,然后进行操作

三种类型的 POJO 是系统开发中常见的:

  1. 与前端交互的 POJO

    • 主要用于数据展示用户输入。这个 POJO 常称为 VO(Value Object)DTO(Data Transfer Object)
    • 作用:负责封装从前端传递过来的数据,或者将需要展示的数据返回前端。
    • 特点
      • 通常包含需要与前端进行展示或交互的字段。
      • 可以通过序列化为 JSON、XML 格式传递给前端。

    示例

    1
    2
    3
    4
    5
    6
    7

    public class UserDTO {
    private String username;
    private String email;

    // Getter and Setter
    }
  2. 与数据库交互的 POJO

    • 用于与数据库中的表进行映射和交互,通常称为 PO(Persistent Object)Entity(实体类)
    • 作用:封装数据库中的数据结构,ORM 框架(如 Hibernate、MyBatis)会将数据库中的表记录映射到这些对象上。
    • 特点
      • 直接与数据库表结构对应。
      • 可能会包含数据库相关的注解或映射规则。

    示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    @Entity
    public class UserPO {
    @Id
    private String id;
    private String username;
    private String password;

    // Getter and Setter
    }
  3. 用于远程调用的 POJO

    • 远程调用(如通过 RPC 或 Web 服务)时,数据需要通过网络传输,因此需要序列化传输的对象,通常是 DTO(Data Transfer Object)
    • 作用:封装跨系统、跨服务之间传输的数据。
    • 特点
      • 通常用于服务之间的数据传输,减少不必要的字段。
      • 可以使用轻量化的序列化格式,如 JSON、XML、或二进制格式(如 gRPC)。

    示例

    1
    2
    3
    4
    5
    6
    7

    public class UserRemoteDTO {
    private String username;
    private String email;

    // Getter and Setter
    }

数据库表设计
http://example.com/2024/11/02/数据库表设计/
作者
Jack Asher
发布于
2024年11月2日
许可协议