所以,如果我有用户和地址表。因为每个用户都可以买卖东西,所以在users表中应该有return_address,shipping_address和billing_address。那么我该如何定义这两个表的关系呢?
在阅读了一些关于hibernate的教程后,我发现自己很混乱,因为现在它有多对一(我明白这是对一对多的回归,但仍然令人困惑)。
有人会介意给我一些设计数据库的建议和建议,以及优化数据库/查询性能吗?帮助像我这样的新学员减轻头痛是很棒的。
提前谢谢。
答案 0 :(得分:0)
用户表将保存地址键。
@Entity
public class Customer{
@ManyToOne
@JoinColumn(name = "return_address_fk")
private Address returnAddress;
@ManyToOne
@JoinColumn(name = "shipping_address_fk")
private Address shippingAddress;
@ManyToOne
@JoinColumn(name = "billing_address_fk")
private Address billingAddress;
}
@Entity
public class Address{
// address properties
}
**不要混淆。
地址应该是推荐实体,意味着它的生命周期不依赖于用户。
1。)许多用户可以拥有相同的returnAddress。
2.)许多用户可以拥有相同的shippingAddress。
3.)许多用户可以使用相同的billingAddress。
如果你说,一个用户可以拥有多个returnAddress,shippingAddress,billingAddress,然后添加Many To Many
注释。将创建单独的表。