保存和检索图像设计问题

时间:2011-07-07 09:42:24

标签: php mysql

我有一个搜索引擎,其中每个产品项目都可以包含摘要的缩略图图像和详细视图的较大图像。

目前,图像ID在Products表中存储为img_id和thumb_id,属性保存在Image表中(宽度,高度,类型),需要连接才能构建图像标记。图像保存在子域中。

产品表有几百万行但并非所有产品都有图像。

我应该取消图像表,如果是这样,你建议采取什么方法来获取图像?

此系统上还提供了其他较小的产品类别,这些产品具有类似的表结构

提前致谢。

我认为我正在寻找的是How to store images in your filesystem

1 个答案:

答案 0 :(得分:0)

你应该考虑在不同类型(jpg,gif,...)的“最佳图像保存”和不同的imageURL之间的权衡,而不需要分别保护所有这些信息。另一种选择是:

  • 将每张图片保存为jpg,例如
  • 用作图片名称$ rowID_thumb.jpg和$ rowID.jpg
  • 为避免文件系统出现问题(超过某个值,某些文件系统无法处理大量数据),您可以创建目录群集,例如1 / 123/1234 / 123467.jpg,其中1234567是$ rowID
  • 考虑图像的固定尺寸,以避免需要保存宽度和高度。 php中有足够的图像处理功能,可以将所有图像调整到相同的大小。

我不会在数据库中存储图像的名称以保存您的独立性;-)详细说明:您有一个ID为123的商店项目。对于此商店项目,存在正常图像和缩略图(仅两个图像) ,否则我的建议不是最好的解决方案!)。我不会在数据库中存储有关图像的任何内容。而是使用商店项目的ID 123以编程方式生成文件名,如getImagePathAndFilename($ id) - > 123分之1/ 123.jpg。在上传过程中,您必须注意所有图片都具有相同的尺寸,以避免需要单独保存。