Python 随着NoSQL的兴起,现在没有任何模型的webapp是否更常见?

Python 随着NoSQL的兴起,现在没有任何模型的webapp是否更常见?,python,mysql,ruby-on-rails,nosql,Python,Mysql,Ruby On Rails,Nosql,随着NoSQL的兴起,在控制器中没有任何模型和过程的webapp现在是否更常见?这在web开发中是一种糟糕的模式吗?当在nosql中获取数据非常容易时,为什么我们要在模型中抽象与数据库相关的函数 注意 我不是问RDBMS/SQL是否不相关,因为这只会启动flamewar SQL数据库仍然是当今的主流。但使用非结构化存储变得越来越普遍。NoSQL数据库非常适合某些web应用程序,但不一定适合所有应用程序。SQL数据库仍然是当今的主流。但使用非结构化存储变得越来越普遍。NoSQL数据库非常适合某些w

随着NoSQL的兴起,在控制器中没有任何模型和过程的webapp现在是否更常见?这在web开发中是一种糟糕的模式吗?当在nosql中获取数据非常容易时,为什么我们要在模型中抽象与数据库相关的函数

注意
我不是问RDBMS/SQL是否不相关,因为这只会启动flamewar

SQL数据库仍然是当今的主流。但使用非结构化存储变得越来越普遍。NoSQL数据库非常适合某些web应用程序,但不一定适合所有应用程序。

SQL数据库仍然是当今的主流。但使用非结构化存储变得越来越普遍。NoSQL数据库非常适合某些web应用程序,但不一定适合所有应用程序。

我不认为“NoSQL”与“无模型”有任何关系

首先,MVC起源于桌面应用程序的Smalltalk世界,远远早于当前的web服务器体系结构(甚至web本身)。我编写的大多数应用程序都使用了MVC(包括M),甚至那些没有使用DBMS的应用程序(R或其他)

另一方面,某些类型的“NoSQL”明确地有一个模型。在应用程序代码看来,对象数据库可能看起来几乎就像“SQL RDBMS+ORM”试图公开的接口,但没有所有奇怪的怪癖和显式映射等等

最后,您显然可以选择另一种方式,编写没有模型的基于SQL的应用程序。它可能并不漂亮,但我已经看过了。

我不认为“NoSQL”与“无模型”有任何关系

首先,MVC起源于桌面应用程序的Smalltalk世界,远远早于当前的web服务器体系结构(甚至web本身)。我编写的大多数应用程序都使用了MVC(包括M),甚至那些没有使用DBMS的应用程序(R或其他)

另一方面,某些类型的“NoSQL”明确地有一个模型。在应用程序代码看来,对象数据库可能看起来几乎就像“SQL RDBMS+ORM”试图公开的接口,但没有所有奇怪的怪癖和显式映射等等


最后,您显然可以选择另一种方式,编写没有模型的基于SQL的应用程序。它可能并不漂亮,但我已经看到了它的成功。

NoSQL的工作是创建一个持久层,该层使用非规范化的数据结构进行快速读写,并使用JSON等数据格式(基于ajax的系统使用的标准格式)来扩展现代应用程序。有时,基于事务的关系数据库不能很好地扩展,但性能差往往与数据建模、查询创建和规划不当直接相关

持久层不应该与域模型有任何关系。使用数据抽象层,可以将对象中包含的数据转换为数据存储中实现的模式。然后,您将使用相同的DAL从数据存储中读取数据,转换数据并将其加载到对象中

您的数据存储可以是XML文件、类似SQL Server的RDBMS或类似CouchDB的NoSQL实现。没关系


FWIW,我构建并继承了大量完全不使用模型的应用程序。对于一些人来说,没有必要,但如果你使用的是对象模型,它必须满足应用程序的需要,而不是数据存储层和表示层。

NoSQL的工作是创建一个持久层,该层可以与现代应用程序相适应,使用非规范化的数据结构进行快速读写和JSON等数据格式,基于ajax的系统使用的标准格式。有时,基于事务的关系数据库不能很好地扩展,但性能差往往与数据建模、查询创建和规划不当直接相关

持久层不应该与域模型有任何关系。使用数据抽象层,可以将对象中包含的数据转换为数据存储中实现的模式。然后,您将使用相同的DAL从数据存储中读取数据,转换数据并将其加载到对象中

您的数据存储可以是XML文件、类似SQL Server的RDBMS或类似CouchDB的NoSQL实现。没关系

FWIW,我构建并继承了大量完全不使用模型的应用程序。对于一些人来说,这是没有必要的,但如果您使用的是对象模型,它必须满足应用程序的需要,而不是数据存储和表示层的需要