Database mongodb建模
我有两个基本表客户端和包。客户端可以有多个包。哪种方法更好 一,================================== 客户端表包表 id:package\u id: 客户名称:包名称: 包:[{package\u id:,package\u key:}]状态: 二,===================================Database mongodb建模,database,mongodb,mongoose,Database,Mongodb,Mongoose,我有两个基本表客户端和包。客户端可以有多个包。哪种方法更好 一,================================== 客户端表包表 id:package\u id: 客户名称:包名称: 包:[{package\u id:,package\u key:}]状态: 二,=================================== 客户端表、包表和客户端包透视表即使没有MongoDB,也不需要透视表,因为它是一对多关系(不是多对多关系)。对于MongoDB,方法是相同的。 查
客户端表、包表和客户端包透视表即使没有MongoDB,也不需要透视表,因为它是一对多关系(不是多对多关系)。对于MongoDB,方法是相同的。 查看有关关系的信息 客户端可以有多个包 嵌入和引用都可以用于客户机(1)和包(N)的这种一对多关系。嵌入或引用可以在任意一侧进行,这是四种不同的建模方法。这四种方法中的每一种都有自己的用例 但是,最常见和最简单的方法是在“一”端嵌入“多”端。在以下情况下,此功能可以正常工作:
- “多”一方的数量少,文件的大小也小李>
- 双方数据的查询是一起完成的
以下是使用引用进行建模的方法: 这是一种更常用的引用方式,即“多”端中的“一”端。请注意,在此模型中,许多包可以具有相同的客户端。在以下情况下,首选此建模:
- 文件数量多,尺寸大
- 查询通常针对单个集合(而不是一起)进行
id:19
名称:“pkg-01”
客户:“c-1”--参考
id: 1
name: "a-1"
status: true
packages: [ { id: 1, name: "abc" }, { id: 2, name: "xyz" }, ... ]
id: 1
name: "c-1"
status: true
id: 19
name: "pkg-01"
client: "c-1" -- <client-name> reference