database noob,在我的程序中,我有用户,而我程序的核心是这些显示的路线图。因此,每个用户都可以创建路线图,保存其他路线图,等等...每个用户都有一个名为saveRoadmaps和createdRoadmaps的字段,应存储路线图。我的问题是,我应该只将路线图_ids存储在savedRoadmap和createdRoadmaps字段中还是整个路线图中?
我之所以这样问,是因为感觉只保存路线图的_id可以节省存储空间,但是当我必须先获取用户的数据,然后使用中的路线图ID来获取路线图时,可能不会派上用场用户的saveRoadmap / createdRoadmap字段,而不是仅提取用户,并且saveRoadmap字段将已经在其中包含了路线图。
顺便说一句,那里有没有读出来的甜美简短的数据库设计,如果您知道的话,请直接给我看!
对于用户,我希望它具有名称,电子邮件,密码,课程说明,以及saveRoadmaps和createdRoadmaps。用户可以创建无限的路线图,还可以节省他或她想要的钱。对于路线图,我希望它具有名称,类别,time_completion,作者,日期和路线图对象,其中将包含将使用d3显示的实际json字符串。现在是我的用户和路线图架构:
const RoadmapSchema = new Schema({
author: {
type: String,
require: false
},
name: {
type: String,
require: true
},
category: {
type: String,
require: true
},
time_completion: {
type: Number,
require: true
},
date: {
type: Date,
default: Date.now
},
roadmap: {
type: "object",
require: true
}
});
和用户架构:
const UserSchema = new Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
},
savedRoadmap: {
type: "object",
default: []
},
createdRoadmap: {
type: "object",
default: []
}
});
我的问题是,在用户架构的savedRoadmap和createdRoadmap字段中,我应该只包含路线图的_id还是应该包含代表路线图的整个json字符串? < / p>
答案 0 :(得分:1)
根据users
和roadmaps
之间关系的基数,可以使用3种不同的数据建模技术来设计路线图系统。
通常,您需要基于根据应用程序预期的查询对数据模型进行归一化:
顺便说一句,那里有没有任何甜美而简短的数据库设计, 如果您知道的话,请把我带给一些!