我想使用以下方式制作一个像docs.google.com之类的应用程序(没有其api,完全在我自己的服务器上)
前端: Backbone
后端:节点
您认为哪个数据库更好? MySQL或MongoDB的?应该支持良好的可伸缩性。
我熟悉php的mysql,如果答案是mysql,我会很高兴。
但是我看到了很多教程,他们使用mongodb,为什么他们在没有mysql的情况下使用mongodb?
我应该使用什么?
任何人都可以给我链接一些使用 Backbone ,Node,mysql(或mongo)构建的示例应用程序(带有源代码)。或至少一个应用。与Node和MySQL
谢谢
最佳答案
使用MongoDB,您可以只存储JSON对象并检索它们的完整格式,因此您实际上并不需要ORM层,并且花费了更少的CPU时间来回转换数据。 MongoDB背后的开发人员还使水平扩展数据库具有更高的优先级,并允许您运行任意Javascript代码以在DB端预处理数据(允许对数据进行映射缩减样式过滤)。
但是,您会因为以下好处而损失一些:您无法加入记录。实际上,您存储的JSON结构只能通过SQL中的联接来完成,但是在MongoDB中,数据只有一种结构,而在SQL中,您可以进行不同的查询并以其他方式更轻松地表示数据,因此,如果您需要对数据库进行大量分析,MongoDB会变得更加困难。
在我看来,MongoDB中的查询语言比SQL更“粗糙”,部分是因为它不那么熟悉,部分是因为查询功能随意地组合在一起,部分是为了使其成为有效的JSON,部分是因为从字面上看,有两种做同一件事的方式,有些是较旧的方式,没有其他方式有用或定期格式化。而且,SQL的简单基于行的设计增加了数组和子对象类型的复杂性,因此语法必须能够处理对包含您定义的某些值,包含您定义的所有值的数组的查询,仅包含您定义的值,不包含您定义的值。相同的区别适用于对象键及其值,这使查询语法更难掌握。 (虽然我可以看到需要使用小写字母,但$where
查询参数却是一声警笛声,它需要在数据的每个记录上运行并返回 bool 值的javascript函数,因为它可以轻松定义所需的对象是否返回,但必须在数据库中的每个记录上运行,不能使用任何索引。)
因此,这取决于您要执行的操作,但是由于您说它是针对Google Docs克隆的,因此您可能不关心任何表示形式,而只关心文档表示形式本身,并且可能仅基于文档进行查询。 ID,文档名称或所有者的ID/名称,在查询中没有什么太复杂的。
然后,我要说能够获取用户正在编辑的文档的JSON表示形式,然后将其放入数据库中并使其自动索引这些重要字段,这值得学习一个新的数据库。
关于mysql - 哪个数据库适合我的应用程序mysql或mongodb?使用Node.js,Backbone,Now.js,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10110035/