DTO类表示多个值的外键

时间:2015-02-17 10:30:48

标签: mysql design-patterns dto

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

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

其中book 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;
}

1 个答案:

答案 0 :(得分:1)

DTO是用于通过通信信道通过http或https大部分时间传输值的对象。

注意:将您的属性设为公开而非私有。

我们应该尽可能简单。

所以像

一样使用它
public class Book {
    public String id;
    public String author_name;
    public int author_age;
}
  

如果您将没有Author对象与DTO的DTO与Author对象转换为json或xml进行比较,那么没有Author的DTO的大小会更小。

     

在Book Book中使用Author时,您只需添加额外的包装器(对于author_name和author_age),这会使您在通信渠道上花费更多。

如果Book有多个作者,或者你需要做一对多的关系:

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

注意:但请确保作者不应该像后面的Book实例一样拥有back属性。

public class Author
{
    public Book book;
}

在某些客户端框架中,如knockout,它会创建带有observables的循环。