【发布时间】:2022-02-03 16:02:20
【问题描述】:
从 REST 服务中,我将获得作为员工列表的响应。其中可能包含以下定义的同一员工的多个地址。
[Employee{empId=1, name='Emp1', address='Emp1 Address1'},
Employee{empId=1, name='Emp1', address='Emp1 Address 2'},
Employee{empId=2, name='Emp2', address='Emp2 Address 1'}]
通过创建另一个列表,即List<EmployeeNormalized >,上述响应需要以规范化的方式进行处理,定义如下。
[EmployeeNormalized{empId=1, name='Emp1',
addresses=[Emp1 Address1, Emp1 Address 2]},
EmployeeNormalized{empId=2, name='Emp2', addresses=[Emp2 Address 1]}]
代码sn-p:
class Employee {
private int empId;
private String name;
private String address;
// 50 other properties
public Employee(int empId, String name, String address) {
this.empId = empId;
this.name = name;
this.address = address;
}
// Setters and Getters
}
class EmployeeNormalized {
private int empId;
private String name;
private List<String> addresses;
// 50 other properties
public EmployeeNormalized(int empId, String name, List<String> address) {
this.empId = empId;
this.name = name;
this.addresses = address;
}
// Setters and Getters
}
List<EmployeeNormalized > 必须包含唯一的员工对象,EmployeeNormalized 类中的 List<String> 应该包含该员工的所有地址。
EDIT:Employee 类有大约 50 个属性。
如何创建这种标准化形式的列表?
【问题讨论】:
-
将属性替换为旧值列表的属性是非规范化(从 1NF)而不是规范化(到 1NF)。 PS请阅读编辑帮助重新块和内联格式代码和文本和重新换行符。请在编辑框下方查看您帖子的格式化版本。 (我已编辑。)
标签: java list stream database-normalization denormalization