当用户上传图片时,我会调整3种不同尺寸的图片。我无法决定什么是更好的选择:
1)将图片路径保存在数据库中的一列中,如:User9876/ImageName
和另一列中的扩展名。当我从数据库获取用户配置文件数据时,我的业务对象具有三个不同图像大小的属性。在代码中,我通过从数据库添加扩展到图像路径来填充此属性,如:
User9876/ImageName_Original.jpg
User9876/ImageName_Small.jpg
User9876/ImageName_Smallest.jpg
2)或者最好在数据库中为每个大小设置三列?
答案 0 :(得分:2)
一些建议:
请勿单独存储扩展名,除非您计划查询特定扩展名。只是增加了更多的复杂性,没有真正的收获。
我会将图片大小代码存储为图片表中的ID。这样您就可以更新/编辑图像代码,而无需在整个表格上运行更新语句。
创建表格图像(
id
int(11)unsigned not null auto_increment,
path
varchar(255)不为null,
size_code_id
smallint(3)不为null,
主要关键(id
)
)Engine = MyISAM默认字符集= utf8;
示例行:
1 | user9876/imagename_og.jpg | 1
2 | user9876/imagename_me.jpg | 2
3 | user9876/imagename_sm.jpg | 3
此设计允许您查询“小”图像而无需解析文件名,但您仍然可以在文件系统上区分中小图像的小图像。
答案 1 :(得分:1)
我认为你的问题的答案可以通过问自己另一个问题来找到:如果你后来选择不是三个,而是四个不同的图像大小会发生什么?显然,不需要您重新组织整个数据库的解决方案更好。