背景:在博主做项目过程中遇到这样一个问题。
数据库建表模型:
如图可以看到,用户表泛化为住户与服务人员,泛化后根据自己的特性,生成独立的表。在建表过程中,用户表只用作登录处理,将与用户相关的属性等分别放置在住户表和服务人员表中,例如:真实姓名,电话号码等。
数据库建表如下:
用户表(登录表):
住户表:
服务人员表:
依据数据结构设计原则,将外键放置在住户表,服务人员表中=>(userId)。
需求要求后端界面要能够维护用户信息,其中要数据列表截图如下:
1.初期解决方案:
将住户数据与服务人员数据分别查询出来,然后再services层中合并成一个List集合返回给前端进行数据渲染。
创建VO类进行数据映射:
public class UserManagerVO {
//用户id
private Integer userId;
//用户名
private String userName;
//角色名称
private String roleName;
//真实姓名
private String realName;
//电话号码
private String telNum;
//注册时间
private Date registerTime;
//上次登录时间
private Date loginTime;
//上次退出时间
private Date logoutTime;
//用户状态
private String userState;
private Integer delState;
....//get、set方法
}
sql语句如下:
-- 查询服务人员表中满足情况的数据
SELECT
s.staffName realName,
s.telNum telNum,
u