我应该检查图像文件是否存在或DB中是否有hasImage列?

时间:2011-03-05 09:42:54

标签: c# .net asp.net asp.net-mvc database-design

我展示了很多项目,每个都可以有一张图片,当它还没有我想要显示'nopicture.jpeg'时

如果每个项目的jpeg(id.jpeg - 我将它们保存为项目的ID + .jpeg)存在于硬盘驱动器上,或者数据库中有一个位列,我应该检查每个项目吗?

3 个答案:

答案 0 :(得分:1)

虽然这可能是不好的做法,但为什么不在查询中提出这一部分呢?

SELECT ISNULL( Picture, "nopicture.jpg" ) as ItemPicture From MyTable

偶尔,您可以运行一个脚本来验证表中的每个图像路径,并在无效路径中删除。

答案 1 :(得分:1)

在硬盘驱动器上检查它会更慢。我也不一定在数据库中使用实际列。在数据库中检查它并根据是否有图片返回一列如下:

CASE WHEN column_with_picture IS NULL THEN 0 ELSE 1 END AS has_picture_TF

答案 2 :(得分:1)

很有可能每个图像进入磁盘比从数据库获取页面上所有图像的结果更昂贵,尽管随着非常快的SSD的出现,情况可能并非如此。

当然,您需要进行测试,但我最初会使用数据库专栏。