多个表对应的一个 PO 是单独抽象出一个类好,还是在主要应用的一张表对应的 PO 里追加更多的属性用起来更好?

来自姬鸿昌的知识库
跳到导航 跳到搜索

问题描述的是这种情况:

比如我有这么几张表,

student(id, name, age) 学生表

class(id, name) 班级表

teacher(id, name, age) 教师表

subject(id, name) 科目表

class_teacher_subject_rel(id, class_id, subject_id, teacher_id) 班级、教师、科目关系表,哪个班级、哪个科目、哪个老师教

score(id, stu_id, subject_id, score) 一次学生考试的分数表,学生id, 科目id,分数

然后现在需求是显示:

学生姓名 学生班级 科目 分数 教师名称
…… …… …… …… ……

现在已经每个表有个 PO 了,为了映射关系型数据表查询结果到 Java 对象,是在某一个 PO 里扩展出其他字段好,还是单独再声明一个类出来好?

这个问题的答案取决于您的具体需求和设计目标。

一般而言,如果多个表涉及的数据是相互独立且易于分离的,

则将它们抽象为不同的 PO 类可能更容易维护和扩展。

但是,如果多个表中的数据存在密切关系,则在主 PO 类中包含所有关联数据可能更方便操作。

最终的决策应该取决于需要在代码中实现的业务逻辑和对模型的理解。

所以其实是拆出来单独再创建一个类来保存还是在已有的 PO 中追加字段来保存取决于这些数据是否相互独立且易于分离

上面这个业务中,查询结果跟所有表的关系都不远不近,也为了更方便后期扩展其他显示字段,单独再创建一个 PO 更好。