订单的 Mongoid 模式设计

Mongoid Schema Design for Orders

我正在尝试找出更好的 MongoDB/Mongoid/Rails 购物车架构设计。

class User
  ...
  embeds_many :orders
end

class User
  ...
  has_many :orders
end

尝试从性能的角度来决定哪个更好。想使用 embeds_many,但是我不确定如果我想在一页上列出所有订单(例如在管理界面中),查询性能会如何。

这里最重要的是如果你嵌入orders,那么它不能有任何其他关联(除了它自己的嵌入对象)。所以它不能,例如,have_many products。它不能 belong_to 一个 shipment。没有什么。如果您的模式可以处理这个,那么就可以了。

第二个问题是要列出独立于users的所有orders吗?如果是,那么您真的不应该嵌入它们。如果这样做,那么您将进行大量的数据库调用,这会减慢您的页面加载速度。 Heroku 实际上(自动)关闭了我的网站几次,因为我做了这样的事情,并且我(不知不觉地)试图在一页加载中进行数百次调用。我稍微更改了我的代码,它加载得更快而且没有抱怨。

所以,我会说不要嵌入它们。从逻辑上讲,orders 应该与 users 分开,因为它们不是 users.

的固有部分