具有两个DTO的用户实体与两个实体-UserLogin,用户

问题描述 投票:0回答:1

我目前正在Spring Boot中编写一个项目。我想知道登录方法。在前端,我想向所有用户显示一些详细的数据,例如他们参与的项目等。由于我不想向前端发送密码和一些私有数据,所以我找到了两种解决方案:

  1. 创建两个DTO-一个用于登录,注册;第二个-用于显示有关用户的信息。
  2. [创建两个实体-包含注册和登录所需数据的UserLogin,以及包含其余数据的User。然后与他们一对一建立联系。

哪种方法更合适?

spring rest dto
1个回答
1
投票

我认为使用DTO的第一种方法更好,我自己也使用它,因为使用DTO可以仅有效地传输所需的数据。

您可以轻松创建更多的DTO来覆盖用户属性的其他组合-例如,用于在用户列表中显示用户信息的DTO(可能只需要namee-mail)。

Spring docs中,他们使用PersonForm DTO(他们称为表单支持对象)来验证用户注册。

因此,DTO可以涵盖同一实体的各种业务案例(注册,显示个人资料,显示实体列表等。

另一方面,如果您为用户使用两个单独的数据库表,则会给程序增加不必要的复杂性(例如,进行更改时,您需要在两个位置保存/更新/删除信息)。

此外,如果您想开始添加新的方式来显示用户数据,则最终将以任何一种方式使用DTO(或为每种情况创建一个单独的数据库表,这将导致大量重复数据。

© www.soinside.com 2019 - 2024. All rights reserved.