使用Mongodb时的对象映射

时间:2013-01-27 13:46:07

标签: java mongodb

我是mongo-db的新手,我几乎没有问题。

我有以下代码:

public class User
{
    private String id;
    private String name;
    private List<Order> orders;
}
public class Order
{
    private String id;
    private String orderName;
    private Date orderDate;
}

User对象的最佳持久策略是什么?
我应该为用户和订单创建集合还是仅为用户创建集合? 我应该保存订单然后再保存用户吗?

我正在使用spring数据MongoRepository

谢谢。

1 个答案:

答案 0 :(得分:0)

我会考虑在建模时如何访问数据。有些问题要问自己:

  1. 我是否需要在一次通话中让用户获得订单?
  2. 平均有多少订单与用户有关?如果它很多,也许最好不要对用户和订单进行反规范化。
  3. 我的前端如何访问此信息?大多数用户呼叫甚至需要订单吗?电汇上的信息太重/太慢了吗?
  4. 一般来说,我会在非规范化方面犯错,而不是规范化的关系本能。可以使用冗余数据并获得不一致的数据。

    Mongo没有实时加入 - 充其量你可以做map / reduce。

    因此,数据的连接需要在数据库中(非规范化)或在UI中。