【发布时间】:2013-05-20 07:48:33
【问题描述】:
我在mongoid中映射关系,我想知道mongoid的最佳实践。
型号
- 客户
- 服务
- 供应商
有四种不同的服务(S1、S2、S3、S4),每种服务由具体供应商。如何映射这些模型或建立它们之间的关系?
提前致谢。
【问题讨论】:
标签: ruby-on-rails ruby mongodb mongoid moped
我在mongoid中映射关系,我想知道mongoid的最佳实践。
型号
有四种不同的服务(S1、S2、S3、S4),每种服务由具体供应商。如何映射这些模型或建立它们之间的关系?
提前致谢。
【问题讨论】:
标签: ruby-on-rails ruby mongodb mongoid moped
您可以使用这些方法中的任何一种,均受 Mongoid 支持:
Referenced 1-N (aka has_many)
在这个模型中,每个服务都会存储提供它的供应商的_id,类似于典型的 RDBMS。
Embedded 1-N (aka embeds_many)
在这个模型中,每个供应商文档将只存储一个内部数据结构,表示它提供的服务列表。
与 MongoDB 中的大多数模式决策一样,您选择的方法主要应基于您的用例,以及您预计应用程序中需要哪些类型的查询。这个问题很好地概述了何时在 MongoDB 中嵌入与参考:
有关 Mongoid 中关系的更多详细信息,请参阅 Mongoid 文档的 Relations 页面。
【讨论】:
只要我的 2 美分:
客户 N:1 供应商
S1
S2
S3
S4
【讨论】: