数据库在管理信息中有多重要?

时间:2020-03-05 18:57:10  来源:igfitidea点击:

我被雇用来帮助编写一个为最终用户管理某些信息的应用程序。它旨在管理几兆字节的信息,但也可以全分辨率管理扫描的图像。这个项目应该使用数据库吗,为什么或者为什么不呢?

解决方案

回答

有任何疑问"我应该使用某种工具吗?"确切地问我们想做什么。我们应该问自己"我是否要为此数据编写自己的存储?"

大多数基于Web的应用程序都是针对数据库编写的,因为大多数数据库都支持许多"免费"功能,我们可以拥有多个Web服务器。我们可以使用标准工具来编辑,验证和备份数据。我们可以拥有一个强大的事务存储解决方案。

回答

我的直觉是"为什么不呢?"数据库将提供用于存储信息的框架,所有输入/输出/优化功能均以文档格式提供。我们可以使用服务器端解决方案,也可以使用本地数据库(例如SQLite或者SQL Server的本地版本)。无论哪种方式,我们都有一个健壮的文档化数据管理框架。

回答

这篇文章应该为我们提供有关将图像存储在数据库中所需的大多数意见。我们是否还意味着"我应该使用数据库来获取其他信息吗?"还是我们只是在询问图像?

回答

我们的CMS存储我们处理的所有支票图像。它使用元数据数据库,并让文件系统处理扫描的图像。

像SQLite这样的简单数据库听起来很合适,它将使我们以一致的事务方式存储文件元数据。然后将每个图像的路径存储在数据库中,并让文件系统执行其最能管理文件的工作。

SQL Server 2008具有一种用于数据库内文件的新数据类型,但在此之前,BLOB是在数据库内部存储文件的方法。在小范围内也可以。

回答

该数据库在处理图像数据本身方面无济于事,但是管理一堆图像的任何东西都将具有要处理的图像的元数据。根据元数据以及我们要使用的数据,数据库确实可以非常有帮助。

仅仅是因为数据库对图像数据的帮助不大,这并不意味着我们无法将图像存储在数据库中。我们将它们存储在SQL数据库的BLOB列中。

回答

如果数据量很小或者已安装在许多客户端计算机上,则可能不需要数据库的开销。

是否打算将其安装在许多用户的计算机上?添加确保我们可以在客户端安装的应用程序上运行的数据库引擎上运行的开销并不是最佳选择。由于数据量很小,我认为XML在这里就足够了。我们可以对图像进行Base64编码并将其存储为CDATA。

该应用程序将在服务器上运行吗?如果我们有并发用户,则数据库具有用于处理这些方案(事务)的概念,这可能会有所帮助。并且扫描的图像数据将适用于BLOB。

回答

数据库旨在管理大量数据,并且尽管大小却可以使我们快速访问读写数据。简而言之,它们管理我们不想处理的数据规模的规模。如果只有几个用户(数百个?),则可以轻松地管理磁盘上的数据(例如XML?)并将数据保留在内存中。图像显然不应该进入数据库,因此问题是要维护多少个数据,或者要维护多少用户?

回答

如果我们想要一种结构化的方式来存储和检索信息,那么数据库无疑是最好的选择。它使应用程序更灵活,更强大,并且使我们可以专注于实际的应用程序,而不是像尝试编写自己的存储系统那样附带的东西。

对于单个应用程序,SQLite很棒。它适合作为文件存储在应用程序中;无需整个DRBMS主宰。

回答

这有很多因素。但是,作为数据库的中间人,我会错于拥有数据库。当事情发生变化时,它只会使生活更轻松。事情将会改变。

根据图像的不同,我们可能将它们存储在文件系统上,或者实际上对其进行blob并将它们放入数据库中(并非所有DBMS都支持)。如果文件很小,那么我会blob它们。如果它们很大,那么我会将它们保留在他的文件系统上,并由他们自己管理。

那里有许多免费或者廉价的DBMS,因此没有任何理由不使用它。我是SQL Server专家,但是如果应用程序是如此简单,那么mysql的免费版本就可以完成这项工作。实际上,它里面有一些很酷的东西。

回答

我们不应该将图像存储在数据库中,这是此处的普遍共识。

文件系统在存储图像方面比数据库要好得多。

我们应该使用数据库来存储有关这些图像的元信息,例如标题,描述等,并仅存储图像的URL或者路径。

回答

在将图像存储到数据库中时,我尽量避免使用它。就情况而言,从我可以收集到的问题来看,有可能存在相当数量的相当大的图像,因此我可能会坚决反对。

如果这是一个Web应用程序,我将使用数据库来使用关键字和其他参数对图像进行快速搜索和索引。然后,如果可能的话,使用某种文件夹结构用一列指向图像在文件系统中的位置,以帮助进一步减少图像加载时间。

如果由于目录可用(网络共享)而需要更高的安全性,并且应用程序是本地的,那么我们可能应该硬着头皮将映像存储在数据库中。