在数据库中存储图像引用的最佳实践

时间:2012-09-11 20:49:08

标签: php database image

我正在设计一个页面,其中包含每个上传图片的不同图片尺寸。

For example an image can be:
original: whatever a user uploads
large: 718x405
medium: 344x194
small: 125x70
square: 238x238

过去,在mysql中,我只有名为image_id,image_name的字段,然后在代码中我会引用这些图像的位置:

Example from my past:
/images/gallery/large/some_image.jpg
/images/gallery/square/some_image.jpg

我见过其他系统做的事情如下:

/images/gallery/some_image-718x405.jpg
/images/gallery/some_image-238x238.jpg

除了将图像放在自己的表中的基本思想之外,为图像创建数据库有哪些最佳实践。当你处理同一图像的多个尺寸时,我会问更多。

谢谢!

1 个答案:

答案 0 :(得分:2)

我会将图像保存为平面文件,并仅在db。中保留image_id和image_name。

/images/<image_id>/original
/images/<image_id>/<width>_<height>

使用mod_rewrite和PHP为这些文件提供你喜欢的URL“格式”。如果您需要性能,可以使用某种缓存(文件,内存缓存)将image_name与image_id匹配以避免不必要的数据库连接。

如果您使用相同的脚本进行PHP会话,请记住在提供图像之前执行session_write_close,否则所有其他图像将在加载一个图像时等待。

删除图像后,您只能清除和删除一个目录。