2008-09-16 39 views
2

我被雇佣来帮助编写管理最终用户的某些信息的应用程序。它旨在管理几兆字节的信息,还可以全分辨率管理扫描的图像。这个项目应该使用数据库,为什么?为什么不?数据库在管理信息方面有多重要?

回答

1

任何问题“我应该使用某种工具吗?”归结为问你想要做什么。你应该问自己 - “我想为自己的数据编写自己的存储空间吗?”

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

0

我的直觉反应是“为什么不呢?”数据库将提供一个存储信息的框架,所有的输入/输出/优化功能都以文档化的格式提供。您可以使用服务器端解决方案或本地数据库(如SQLite或本地版本的SQL Server)。无论哪种方式,您都有一个强大的,有记录的数据管理框架

0

This post应该给你大部分关于将图像存储在数据库中的意见。你是否也意味着'我应该使用数据库来获取其他信息?'或者你只是问图像?

0

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

像SQLite这样简单的数据库听起来很合适 - 它可以让你以一致的交易方式存储文件元数据。然后将路径存储到数据库中的每个映像,并让文件系统执行最好的功能 - 管理文件。

SQL Server 2008有一个为数据库内文件构建的新数据类型,但在此之前,BLOB是在数据库中存储文件的方式。在小范围内也可以起作用。

1

数据库并不会帮助你处理图像数据本身,但管理一堆图像的任何东西都会包含关于你将要处理的图像的元数据。根据元数据和你想要做什么,一个数据库的确可以带来很大的帮助。

并且仅仅因为数据库对图像数据没有多大帮助,并不意味着您无法将图像存储在数据库中。您可以将它们存储在SQL数据库的BLOB列中。

1

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

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

该应用程序是否可以在服务器上运行?如果你有并发用户,那么数据库有处理这些场景(事务)的概念,这可能会有帮助。扫描的图像数据适用于BLOB。

0

数据库旨在管理大量数据,并且应该让您可以快速访问读取和写入数据,尽管数据量很大。简而言之,他们管理您不想处理的数据规模。如果你只有几个用户(几百个),你可以轻松管理磁盘上的数据(比如说XML?)并将数据保存在内存中。图像应该显然不会进入数据库,所以问题是有多少数据,或者有多少用户在维护这个数据库实例?

0

如果你想有一个结构化的方式来存储和检索信息,数据库绝对是最好的选择。它使您的应用程序变得灵活且功能更强大,让您专注于实际应用程序,而不是像试图编写自己的存储系统那样的杂费。

对于个人应用,SQLite是伟大的。它适合作为一个文件的应用程序;不需要整个DRBMS主宰。

0

这有很多因素。但是,作为一个数据库weenie,我会在拥有数据库方面犯错。当事情发生变化时,它会让生活更轻松。而东西将会更改。

根据图像的不同,您可能会将它们存储在文件系统中,或者实际将其存储在数据库中(不支持所有DBMS)。如果这些文件非常小,那么我会把它们弄脏。如果它们很大,那么我会将它们保留在文件系统上并自己管理它们。

有这么多的免费或便宜的数据库管理系统在那里,真的没有借口不使用一个。我是一个SQL Server的人,但是你的应用程序很简单,那么免费版本的mysql应该可以完成这项工作。事实上,它里面有一些非常酷的东西。

1

您不应该将图像存储在数据库中,因为一般意见here

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

您应该使用数据库来存储关于这些图像的元信息,例如标题,描述等,并且只存储图像的URL或路径。

1

说到将图像存储在数据库中,我尽量避免它。就你的问题而言,我可以从你的问题中收集到大量相当大图像的可能性,所以我可能会强烈反对。

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

如果由于目录可用(网络共享)和应用程序是本地的需要而需要更高的安全性,那么您应该咬紧牙关并将图像存储在数据库中。