由于我是 MongoDB 的新手,我有很多关于模式设计的问题。出于学习原因,我想将我的关系模式转换为 MongoDB 模式,并希望尽可能多地从该模式中获利。
在我的规范化关系数据库中,模块和 Lecture_types 之间存在多对多的关系。
- modules 表只有一个属性:name
- Lecture_types 表具有以下属性:description、default_group_size
- 连接表也有一个属性:小时
我的基本用例是:我想在模块的上下文中查看讲座类型,以便在模块中立即使用演讲类型。
但同时,我想有一个系统中所有演讲类型的列表。例如,我想在视图中实现一个下拉列表来创建一个新模块,显示所有可用的 Lecture_types。
因为我基本上想访问我的模块,包括讲座类型,我想到了一个非常非规范化的模块文档的模式设计,如下所示:
{
name: "...",
lecture_types: [
{
hours: 2,
lecture_type: { description: "...", default_group_size: 50 }
},
{
hours: 3,
lecture_type: { description: "...", default_group_size: 20 }
}
]
}
这是一个好主意吗?描述和默认组大小很少更改,但是我不习惯一次又一次地存储相同的信息。我也不确定深度嵌套的“模拟”连接表。你有其他选择吗?
先感谢您!