我聽說Mysql使用Uber,Linkedin等大公司。我認爲NodeJs最好使用Mysql而不是MongoDB。我錯了嗎?也許我不知道MongoDB的功能爲什麼NodeJs通常使用MongoDB而不是Mysql?
2
A
回答
5
就像你,我開始學習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
]
}
,稍後如果你決定打破或添加更多詳情你可以這樣做,因此詞「規模」
Todo: {
Id: asdf
}
TodoItem: {
todoId: asdf,
name: 'wash the dishes',
etc: // and so on
}
最棒的一切,如果你覺得你的應用程序在石頭幾乎設置,你可以轉移到MySQL或PostgreSQL其中大公司你提到的在做。
這只是一個簡單的例子,可能在Sql上使用NoSql不會有太大的好處。但想一想,你正試圖用陌生的數據關係構建一個新的應用程序。是的,您可以根據需要構建ER圖並對其進行規範化,當您開始構建應用程序時,您會意識到一個非常重要的領域可能會影響到您的表的整個關係。或者你寧願快速構建,讓自己的手變髒,用NoSql構建凌亂的表/集合,並且看到你的應用程序活得更快?
希望有所幫助。
相關問題
- 1. 爲什麼使用ROLAP而不是普通的MySQL?
- 2. 爲什麼使用filter()而不是'常用'def函數?
- 3. 什麼是hsfiles?爲什麼使用「.hsfiles」擴展名而不是常規的「.hs」?
- 4. 爲什麼使用classmethod而不是staticmethod?
- 5. 爲什麼使用iconv_strpos而不是strpos?
- 6. 爲什麼使用registerDefaults:而不是setValue:forKey:?
- 7. 爲什麼使用TagBuilder而不是StringBuilder?
- 8. 爲什麼,而不是使用回調
- 9. 爲什麼使用結構,而不是
- 10. 爲什麼使用StringWriter而不是StringBuffer?
- 11. 爲什麼使用s:Line而不是mx:HRule?
- 12. 爲什麼使用ImageIcon而不是Image?
- 13. 爲什麼使用SQLiteOpenHelper而不是SQLiteDatabase?
- 14. 爲什麼使用MapFragment而不是SupportMapFragment?
- 15. 爲什麼使用FloatBuffer而不是float []?
- 16. 爲什麼使用追加()而不是+
- 17. 爲什麼使用Number.parseInt而不是parseInt()?
- 18. 爲什麼使用JLE而不是JL?
- 19. 爲什麼使用isinstance()而不是type()?
- 20. 爲什麼使用NoSQL而不是RDBMS?
- 21. 爲什麼使用uImage而不是zImage
- 22. 爲什麼使用HTML而不是HAML?
- 23. 爲什麼使用leal而不是incq?
- 24. 爲什麼使用TCPDF而不是mpdf
- 25. 爲什麼使用DataSource而不是XADataSource?
- 26. 爲什麼使用'='而不是':='?
- 27. 爲什麼使用char []而不是String?
- 28. 爲什麼使用「slim = tf.contrib.slim」而不是正常導入slim?
- 29. 爲什麼要使用枚舉而不是常量?
- 30. 爲什麼我應該使用goog.ui.Checkbox而不是常規輸入?
一旦你理解了SQL和NoSQL數據庫及其道具和利弊的區別,你可以使用MySQL或MongoDB或兩者。人們通常使用最適合他們的方式,而不是其他大公司正在使用的方式。 –