gpt4 book ai didi

Java数据建模: Use Map or List to build one to many relationship

转载 作者:行者123 更新时间:2023-12-02 00:55:48 25 4
gpt4 key购买 nike

用例:一个人可以拥有多个电话号码。客户端将以下 JSON 发送到服务器,服务器将其存储到数据库中:

{
"personName": "John Smith",
"telephoneNumbers": {
"id-1234": {
"number": "01-456546546",
"type": "private"
},
"id-1235": {
"number": "01-1456546",
"type": "office"
}
}
}

人员的模型类可能是这样的(变体映射):

public class  Person {
private String personName;
private Map<String, TelephoneNumber>;
}

或者像这样(变体列表):

public class  Person {
private String personName;
private List<TelephoneNumber>;
}

电话号码的模型类可能是这样的:

public class TelephoneNumber {
private String id; // for variant list
private String number;
private String type;
}

我的想法:该数据模型“人变体列表”是常规且通用的。但我必须编写一个映射器来将输入 JSON 映射到此 Person 模型。

对于数据模型 Person 变体映射,我可以反序列化 JSON 并将对象直接存储到数据库。但恐怕它只适用于 NoSQL DB,因为我认为很难为 Java Map 的关系型 DB 注释一对多关系。

您对选择变体列表或 map 有什么建议吗?

最佳答案

你的担心是有道理的。

将给定实体的 id 保留为其自身的属性始终是一个良好且安全的解决方案。

这意味着使用 List 的解决方案对于 NoSQL 和关系数据库(恕我直言)来说都更好。

您还可以找到许多使用 DSL 语言的框架,例如 Spring DSL,它们对第二种设计比第一种设计有更好的集成和理解。

关于Java数据建模: Use Map or List to build one to many relationship,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57819930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com