假设实体的关系就是多对多,我应该是在数据库中创建两张表,还是三张表?
如果创建两张表,那么就需要在xml中配置many-to-many
如果创建三张表,那么就需要在第三张的表中存储其余两个表的主键,在xml中直接配置many-to-one
这两种方式那个好?
具体使用哪种应该由你的业务决定的吧,如果是多对一的关系就使用many-to-one例如一个人有多个邮箱地址;多对多关系,例如选课一个人可以选多个课,而一门课程又被多个人选择,双向多对多就用many-to-many。
根据需要,比如说购物就是典型的many-to-many,一个商品可以放入很多订单,很多人买。一个订单可以包含很多种商品。比如说你一个订单买了一个手机一个壳一个耳机。
除了m2m m2o,还有 o2o,有时候我们需要把大表拆开,那么就是o2o。比如用户的头像虽然也属于用户,但是二进制文件我们单独放一个表。
public class Person {
private Long id;
private String name;
private Depart depart;}
public class Depart {
private Long id;
private String name;
Set person;}
person.cfg.xml :