大二狗,自学node.js大半年了,终于动手自己做项目了,才发觉自己很多都不懂…最近在mongoose挖坑,苦恼了一周,吃不下睡不着,求求大神们指点迷津~~~!
项目是做一个考试系统——数据库设计大概就是 一个课程里面有 学生和老师,还有题库(他们之间有关联),然后老师和学生里面有关联… 看了mongoose文档,和上网查阅,然后就做了下面这样:
不知道对不对,如果不对的话,请大神们指点一下,求求大家了,我快崩溃了…
根据你贴的代码根本看不出来对不对。你自己跑一下就知道了啊。
@beyond5959 我其实是想了解一下大家用mongodb设计数据库时,是怎么设计他们之间关联的…
@Luokejin 满足数据库范式规则设计呀
@JustforNode 范式规则设计…我没了解过…刚刚百度一下,mongodb也要遵循这个规则吗?
populate?
@Luokejin 你不是要设计数据库表么?设计表结构跟用哪个数据库没关系,遵循数据库几个范式规则设计表即可
@JustforNode 遵循范式的话就没必要用 MongoDB 了,遵循范式就发挥不了 MongoDB 的优势了。
@beyond5959 那到底要怎么办…
@yuu2lee4 一开始我以为这样可以的,不过说实话,那个API文档真看不懂populate,ref,promise等作用,而且我要通过ajax来post动态添加数据,我也不懂。
@Luokejin 嗯,mongo不能只遵循范式,范式与反范式要自己衡量,可以看看这个 http://blog.csdn.net/lein_wang/article/details/53064791
用 Mongo 就不要折腾关联,相关的条目聚合到一个文档里。习惯关联,就去用 MySQL/SQLite 啥的,简单多了。
你这拼音命名看得我。。。
https://github.com/zxj963577494/node-snimay 很简单的一个网站,也有mongoose关联,希望能帮助你
@pinxue 但是如果mongo不用关联又怎么才能实现我的业务呢…我也觉得应该用mysql的,不过还是觉得折腾一下,学点东西
@AnzerWall 尴尬癌都犯了。。。。啊哈哈
@zxj963577494 全英文,还是ES6的…(笑着活下去…) 不过还是很谢谢你,我会认真看的了
@JustforNode 这些概念看得我好头晕啊…不过还是谢谢大佬。
在不同的集合里用唯一key做关联 比如db.user {name: aaa} db.teacher {studentName: aaa} 这样就是人工的关联,查的时候也要拿着唯一key 去对应的集合去查。不过我更建议你去用mysql同学:)
5楼正解 populate
我整理了一篇博客,不介意可以看看 https://tomoya92.github.io/2016/04/28/nodejs-mongoose/
我觉得还是不要用关系型数据库的思维去设计使用mongodb,用工具都得扬长避短,不然得痛苦死
一对多关系 mongoose Population 连表/关联使用与原理分析 http://www.jianshu.com/p/d700ad062083
建议你用mysql加sequelize,mongodb是用来搞分布式的,对程序员极不友好,需要dba的水平
你贴得代码看不出来问题~
@dayuoba 原来mysql才是真理吗…我提交项目书说是mongo了,所以才想说不放弃那么快…
@liygheart 好,谢谢,我学习学习。
@nnliang …主要是查询的时候没头绪
@xltank 嗯,有道理,那我再考虑考虑吧…
@hi363138911 好的,谢谢,我学习学习
@isbdnt 分布式… 昨天 物联网概论 刚提到这个名词…