我被雇用来帮助编写一个为最终用户管理某些信息的应用程序。 它旨在管理几兆字节的信息,但也可以全分辨率管理扫描的图像。 这个项目应该使用数据库吗,为什么或为什么不呢?
数据库在管理信息方面有多重要?
How important is a database in managing information?
===============>>#1 票数:1
有任何疑问“我应该使用某种工具吗?” 确切地问您想做什么。 您应该问自己-“我要为此数据编写自己的存储吗?”
大多数基于Web的应用程序都是针对数据库编写的,因为大多数数据库都支持许多“免费”功能-您可以拥有多个Web服务器。 您可以使用标准工具来编辑,验证和备份数据。 您可以拥有一个强大的事务存储解决方案。
===============>>#2 票数:1
该数据库在处理图像数据本身方面无济于事,但是管理一堆图像的任何东西都将具有要处理的图像的元数据。 根据元数据以及您要使用的数据,数据库确实可以非常有帮助。
仅仅是因为数据库对图像数据的帮助不大,这并不意味着您无法将图像存储在数据库中。 您将它们存储在SQL数据库的BLOB列中。
===============>>#3 票数:1
如果数据量很小或安装在许多客户端计算机上,则可能不需要数据库的开销。
是否打算将其安装在许多用户的计算机上? 增加确保您可以在客户端安装的应用程序上运行的数据库引擎上运行的开销并不是最佳选择。 由于数据量很小,我认为XML在这里就足够了。 您可以对图像进行Base64编码并将其存储为CDATA。
该应用程序将在服务器上运行吗? 如果您有并发用户,则数据库具有用于处理这些方案(事务)的概念,这可能会有所帮助。 并且扫描的图像数据将适用于BLOB。
===============>>#4 票数:1
===============>>#5 票数:1
在将图像存储到数据库中时,我尽量避免使用它。 就您的情况而言,从我可以收集到的问题来看,有可能存在相当数量的相当大的图像,因此我可能会强烈反对。
如果这是一个Web应用程序,我将使用数据库来使用关键字和其他参数对图像进行快速搜索和索引。 然后,如果可能的话,使用某种文件夹结构用一列指向图像在文件系统中的位置,以帮助进一步减少图像加载时间。
如果由于目录可用(网络共享)而需要更高的安全性,并且该应用程序是本地的,则您可能应该硬着头皮将图像存储在数据库中。
===============>>#6 票数:0
我的直觉是“为什么不呢?” 数据库将提供一个存储信息的框架,所有输入/输出/优化功能均以文档格式提供。 您可以使用服务器端解决方案,也可以使用本地数据库,例如SQLite或SQL Server的本地版本。 无论哪种方式,您都有一个健壮的文档化数据管理框架。
===============>>#7 票数:0
这篇文章应该为您提供有关在数据库中存储图像的大多数意见。 您是否还表示“我应该使用数据库来获取其他信息吗?” 还是您只是在询问图像?
===============>>#8 票数:0
我们的CMS存储我们处理的所有支票图像。 它使用元数据数据库,并让文件系统处理扫描的图像。
像SQLite这样的简单数据库听起来很合适-它可以让您以一致的事务方式存储文件元数据。 然后将每个图像的路径存储在数据库中,并让文件系统执行其最擅长的工作-管理文件。
SQL Server 2008具有一种针对数据库内文件构建的新数据类型,但在此之前,BLOB是在数据库内部存储文件的方式。 在小范围内也可以。
===============>>#9 票数:0
数据库旨在管理大量数据,并且尽管大小却可以使您快速访问数据。 简而言之,他们管理数据的规模-您不想处理的规模。 如果您只有几个用户(数百个?),则可以轻松地管理磁盘上的数据(例如XML?)并将数据保留在内存中。 图像显然不应该进入数据库,所以问题是要维护多少个数据,或者您要维护多少用户?
===============>>#10 票数:0
如果您想要一种结构化的方式来存储和检索信息,那么数据库无疑是最好的选择。 它使您的应用程序更灵活,更强大,并且使您可以专注于实际的应用程序,而不必像尝试编写自己的存储系统那样附带。
对于单个应用程序, SQLite很棒。 它适合作为文件应用程序。 无需整个DRBMS主宰。
===============>>#11 票数:0
这有很多因素。 但是,作为数据库中间人,我会错于拥有数据库。 当事情发生变化时,它只会使生活更轻松。 事情将会改变。
根据图像的不同,您可以将它们存储在文件系统上,或者实际上将它们斑点化并将它们放入数据库中(并非所有DBMS都支持)。 如果文件很小,那么我会blob它们。 如果它们很大,那么我会将它们保留在他的文件系统上,并由他们自己管理。
那里有许多免费或廉价的DBMS,以至于没有任何理由不使用它。 我是SQL Server专家,但是如果您的应用程序是如此简单,那么mysql的免费版本就可以完成这项工作。 实际上,它里面有一些很酷的东西。