我有一个我正在研究的分类系统。
人们可以将照片添加到分类中,但我只在显示分类列表时显示一张照片。
为此,我在分类广告和照片之间有一个链接表,其中包含“is_main”布尔字段。
当有人删除其中一张机密照片时,我想:
1) See if there is more than that photo tied to the classified.
2) If there is, update the next photo and set that "is_main" field to TRUE.
试图找出最有效的方法来做到这一点。
答案 0 :(得分:0)
在我看来,我发现在数据库中存储图像名称有点多余 我宁愿创建一个以分类id命名的目录,并在那里存储相应的图像。
因此,如果用户删除照片,他只会删除照片。
为了将一张照片保留为主照片,我将其称为main.jpg 如果它将被删除,我会阅读目录内容并重命名最先出现的照片 这都是
答案 1 :(得分:0)
在我看来,你不应该在照片表中设置'is_main'标志,而是将该照片的ID添加到分类记录中。寻找用于显示目的的“主要”照片要快得多(我经常这种情况发生)。
从照片表中删除照片时,您需要查看它是否是分类广告表中引用的照片。如果是,则可以选择与之关联的下一张照片(例如,使用min(PhotoID)或min(Created),其中创建的是将照片添加到照片表时的日期时间。
结论:照片的_main属性不是照片桌上的标志,而是分类广告表中的FK。