![我想创建一个图片数据库。从哪里开始?](https://linux22.com/image/1412522/%E6%88%91%E6%83%B3%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%9B%BE%E7%89%87%E6%95%B0%E6%8D%AE%E5%BA%93%E3%80%82%E4%BB%8E%E5%93%AA%E9%87%8C%E5%BC%80%E5%A7%8B%EF%BC%9F.png)
我想创建一个可搜索的图像数据库。
我想要一些可扩展的东西,这意味着我想要定义自己的字段并能够在它们上进行搜索,但我还希望能够插入关键字以进行更广泛的搜索。
我有点担心学习曲线太陡峭,但我愿意付出一些努力。:-)
还有一些可能有帮助的内容:虽然我愿意在网上举办这样的活动,但这可能不是我的第一选择。另外:我认为我们最初谈论的是几十张图片,但随着时间的推移会越来越多。
答案1
我的第一个想法是,你不要...将图片放在目录中,而要将文件、标签等的链接存储在数据库中。
答案2
如果您使用的是 Windows,则可以使用 picasa.google.com 上的 picasa。您可以随意标记图片,并根据这些标记进行搜索。
选项 2:
画廊项目网站
它基于 Web,具有 mysql 数据库,但 GUI 很简单。您可以标记图片并搜索这些标记。有附加组件/扩展程序可提供附加功能。
选项 3:
诸如 mediawiki 之类的 wiki 也可能有用。
答案3
由于你没有提到你想在哪里实现你的数据库,我假设您正在为一个网站执行此操作,我一直使用的方法如下:
假设我有一个包含 100 张图片的目录,每张图片按顺序命名:
1.png
2.png
3.png
…
100.png
因此我构建了一个数据库,将这些图像信息存储在以下列中:
id, name, size, keywords, …
因此,我将构建一个查询,根据提供的相关信息检索它们:
"SELECT * FROM `images` WHERE NAME LIKE ?"
因此我可以访问它们,因为它们的 ID 与它们的文件名相对应,例如:
echo '<img src="'.$queryResult->id.'png">';
但同样,这取决于您的实施,这是用于网站、移动应用程序还是桌面应用程序?
更新:
既然你说这是针对网站的,如果图片不是由客户上传,而是由管理员上传,那么这无疑是最好的方法。但你可能想看看BLOB也。
这种方法(将它们存储在文件系统上而不是数据库中)的主要优点是,您可以轻松访问图像并对其进行编辑、调整大小、更改图像以及对普通图像执行任何操作,而无需每次进行更改时都从数据库中检索它们。事实上,许多托管用户 OC 的网站都使用这种方法存储图像,例如:9GAG、4Chan。