gpt4 book ai didi

mysql - DTO 类,表示多个值的外键

转载 作者:行者123 更新时间:2023-11-29 12:24:26 27 4
gpt4 key购买 nike

我有一个关于 DTO 类表示的问题。我的数据库中有两个表,其中一个表在另一个表上有两个外键,例如:

book(id, author_name, author_age)
author(name, age, telephone)

其中书籍的author_name和author_age是作者姓名和年龄的外键。

一般来说,在 DTO 类上实现这种情况的最佳方法是什么?在 Book DTO 中,最好执行以下操作:

public class Book {
private String id;
private Author author;
}

或者类似的东西

public class Book {
private String id;
private String author_name;
private int author_age;
}

最佳答案

DTO 是用于在大多数时间通过 http 或 https 的通信 channel 传输值的对象。

注意:将您的属性设为公开而不是私有(private)。

我们应该让它尽可能简单。

所以使用它就像

public class Book {
public String id;
public String author_name;
public int author_age;
}

If you would compare the DTO without Author object vs DTO with Author object converted into json or xml, DTO without Author would be less in size.

When using Author inside Book you just add extra wrapper (for author_name and author_age) which cost you some more over communication channel.

如果图书有多个作者或存在一对多关系,您需要这样做:

public class Book {
public String id;
public List<Author> authors;
}

注意:但请确保作者不应具有如下 Book 实例的 back 属性。

public class Author
{
public Book book;
}

在某些客户端框架(例如淘汰赛)中,它会使用可观察值创建循环。

关于mysql - DTO 类,表示多个值的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28559872/

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