如果全球数据如此糟糕,为什么它不适用于数据库(从技术上讲只是全球数据)

If global data is so bad, why doesn't that apply to databases (being technically just global data)

提问人:user981165 提问时间:12/5/2014 最后编辑:Pedro Montoto Garcíauser981165 更新时间:12/5/2014 访问量:60

问:

如果全球数据被视为如此糟糕,在系统的任何地方都有可能发生变化,那么数据库难道不应该受到同样的抱怨吗?

数据库只是一个大型的持久性全局数据存储,对吧?

与数据库 语言无关 的全局变量

评论

1赞 N.B. 12/5/2014
为什么数据库会被认为和全局变量一样糟糕?两者作为砖块和木星是不同的,并不属于同一类别。

答:

0赞 Pedro Montoto García 12/5/2014 #1

如果您有全局数据库访问器,则数据库只是全局数据,这是错误的

从技术上讲,数据库是用于持久保存应用程序数据的数据存储,也就是说,在执行相同代码(而不是内存中数据)之间保留数据。数据库中的数据并不意味着代码的每个部分都可以访问,而只能访问特定部分。

1赞 Neville Kuyt 12/5/2014 #2

全球数据还不错。全局变量是坏的。

一些使全局变量变得糟糕的事情也适用于数据库。

全局变量引入了紧密耦合,这使得应用程序变得脆弱。数据库也执行相同的操作 - 除非您采取措施降低该风险,否则数据更改可能会破坏应用程序。ORM 框架所做的许多工作都与此相关——检查数据类型等。

全局变量使理解代码变得困难 - 您必须了解当前正在阅读的代码,以及该变量可能更改的所有其他实例。这也适用于数据库 - 同样,ORM 系统试图通过将数据库数据重新表述为应用程序数据来减少这个问题。

全局变量可能会引入并发问题。数据库通过事务来缓解这种情况。

所以,是的,使用数据库也有缺点。但对于大多数主流开发项目来说,没有太多选择......