我正在开发一个应用程序(Rails 3.2,Mongoid),它从用户那里获取所有(我的意思是“很多”)照片。首先,我们获取相册 ( <userid>/albums
),然后,对于每个相册,我们拍摄其中的照片 ( <albumid>/photos
),然后是用户照片 ( <userid>/photos
)。然后我们对每张照片进行一些操作,并将它们保存到数据库中。
现在,作为安全网,对于每张“孤儿”照片,我会检查该照片是否已经存在,以避免重复。当前检查是通过exists
查询在数据库上完成的。但是,它会进行大量的数据库查询,这是不可接受的。我尝试在服务器端进行,使用数组来跟踪照片,但速度较慢(Array#select
如果我的记忆正确,我会使用)。
所以,有两个问题:1/这个“安全网”有用吗,还是我可以理所当然地认为孤儿照片不能重复?我想是的,但我认为检查是有原因的。2/如果我必须检查以确保数据库中没有重复项,我应该如何做才能提高效率?
编辑
好的,看起来确实可以重复,所以问题 1/ 已解决。现在大约 2:是否可以从检索到的照片字段中“猜测”它是否属于相册,即使没有类似的字段album_id
?如“如果照片不是来自user
并且user
被标记”-> orphan ?
谢谢你的时间!