当用户上传图像时,我将该图像调整为 3 种不同的尺寸。我无法决定什么是更好的选择:
1) 将图像路径保存在数据库的一列中,例如:User9876/ImageName
并将扩展名保存在另一列中。当我从数据库获取用户配置文件数据时,我的业务对象具有不同图像大小的三个属性。在代码中,我通过向数据库中的图像路径添加扩展名来填充此属性,例如:
User9876/ImageName_Original.jpg
User9876/ImageName_Small.jpg
User9876/ImageName_Smallest.jpg
2) 或者每个尺寸在数据库中都有三列更好?
最佳答案
一些建议:
不要单独存储扩展程序,除非您计划查询特定扩展程序。只是增加了更多的复杂性而没有任何实际 yield 。
我会将图像大小代码作为 ID 存储在图像表中。这样您就可以更新/编辑图像代码,而无需在整个表上运行更新语句。
创建表格图像(
id
int(11) 无符号非空自动增量,路径
varchar(255) 不为空,size_code_id
smallint(3) 不为空, 主键(id
) )Engine=MyISAM 默认字符集=utf8;
示例行:
1 | user9876/imagename_og.jpg | 1
2 | user9876/imagename_me.jpg | 2
3 | user9876/imagename_sm.jpg | 3
这种设计将允许您查询“小”图像,而无需解析文件名,但您仍然可以将小图像与文件系统上的中图像和原始图像区分开来。
关于database - 在数据库中保存图像路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8626960/