订单的 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
.
的固有部分
我正在尝试找出更好的 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
.