我听说过Mysql使用了Uber,Linkedin这样的大公司。我认为NodeJs最好使用Mysql而不是MongoDB。我错了吗?也许我不了解MongoDB的功能
答案 0 :(得分:6)
和我一样,当我开始学习NoSQL时,我处于同样的两难境地。来自RDBMS背景NoSQL或MongoDB更容易扩展,并且具有类似JSON的语法,让JavaScript开发人员感到宾至如归。在开发Todo应用程序时想象一下这个结构:
Todo Database (MySQL):
- Todo (table)
- Id
- Todo Item (table)
- TodoId
- TodoName
使用MongoDB,您可以将所有内容放在一个表或集合中,如下所示:
Todo: {
Id: //some uniq id,
Items: [
0: {
name: 'wash the dishes'
},
1: // and so on
]
}
如果你决定打破或添加更多细节,你可以这样做,因此“scale”这个词
Todo: {
Id: asdf
}
TodoItem: {
todoId: asdf,
name: 'wash the dishes',
etc: // and so on
}
最重要的是,如果您觉得自己的应用程序几乎是一成不变的,您可以转移到您提到的大公司正在进行的MySql或Postgresql。
这只是一个简单的例子,可能在Sql上使用NoSql不会带来太大的好处。但想想看,你正在尝试用不熟悉的数据关系构建一个新的应用程序。是的,您可以构建ER图并根据需要对其进行标准化,当您开始构建应用程序时,您意识到一个非常重要的字段可能会影响表的整个关系。或者你宁愿快速构建并弄脏你的手,使用NoSql构建凌乱的表/集合并看到你的应用程序更快地活跃起来?
希望有所帮助。