我是否应该在DB中为UserAddress助手类Java、Hibernate、Postgres创建一个单独的表?
我正在为用户管理制作一个小型的restful服务。通过赋值,用户由以下值定义:我是否应该在DB中为UserAddress助手类Java、Hibernate、Postgres创建一个单独的表?,java,database,postgresql,hibernate,design-patterns,Java,Database,Postgresql,Hibernate,Design Patterns,我正在为用户管理制作一个小型的restful服务。通过赋值,用户由以下值定义: ◦ First name ◦ Last name ◦ Date of birth ◦ Login ◦ Password ◦ Input field “About me” ◦ Address of residence (country, city, street, house, flat) 在设计时,我注意到了地址,并认为将所有内容都写在一个地址字段中,并在数据库表中创建一个类似的属性是错误的,因为这样按
◦ First name
◦ Last name
◦ Date of birth
◦ Login
◦ Password
◦ Input field “About me”
◦ Address of residence (country, city, street, house, flat)
在设计时,我注意到了地址,并认为将所有内容都写在一个地址字段中,并在数据库表中创建一个类似的属性是错误的,因为这样按地址进行不同的过滤将变得非常不方便。然后,我将地址字段分隔为5个字段(括号中的字段)。然而,在这样做之后,我意识到,给定id字段,我的类有13个字段,在我的理解中,这使得类过载和“错误”。然后我决定为地址创建一个单独的类,并将其用作用户的字段,即:
@Entity
public class UserAddress {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;
private String country;
private String city;
private String street;
private int house;
private int flat;
}
在这样做之后,我不完全确定如何进行,因此我有以下问题:
编辑:如果地址对象无效且不属于用户,则只能通过其用户对象操纵地址对象,这有助于数据的一致性
我没有GUI,我只做服务器端,但控制器和存储库呢。我应该有机会与地址进行个性化交互,还是应该只通过用户访问地址。