我用来像这样设计'table'
teacher
- id
- name
student
- id
- teacher_id
- name
假设1名教师可以有很多学生,所以我把teacher_id放到了能够加入的地方。
但是在noSql中我为什么要做多个文件?我可以将所有内容放在user
下并使用嵌套对象,如
user = {[
id:1,
type:teacher
student:[{
id:321
}]
]}
想象一下,我的应用程序需要在不同的选项卡中检索教师和学生的列表,仍然使用模型我可以获得我需要的数据,我只是在客户端进行过滤/操作,对吗?
答案 0 :(得分:2)
如果您使用nodejs
,那么我更喜欢您在您的节点上使用moongose
npm。它使用架构和模型限制。您的方法在RDBMS
中很好但在mongo中你避免加入。
以这种方式设计一个模式,根据您的要求和数据可用性和read or write
操作的使用情况进行匹配
var mongoose = require(' mongoose'); var Schema = mongoose.Schema;
var Teachers = new Schema({
//_id: ObjectId,
"name": {
"type": String,
},
"students": [{
name: String
}]
})
module.exports = mongoose.model('Teachers', Teachers);
它避免了你的加入。管理所有老师和他们各自的学生。
答案 1 :(得分:1)
您可以在服务器端进行过滤,并将过滤后的数据发送到客户端。效率更高。