写于2010年11月6日
方案一 采用一对一模式
新闻:包含文章标题、正文、及新闻图片的信息。
相集:包含多个图片的集合,该图集中的一张照片被指定为图集的封面。
具体就是按照一条新闻对应一个相集,一个相集对应一个封面图片。
目前在ddtcms中遇到的问题就是,在admin后台,不能取消新闻和图集的对应关系,详细情况就是在选择新闻图集的时候,如果选择了“---------”(就是想使新闻图集为空),但是点击了保存之后,再来修改,发现,图集的对应关系还是保持为修改之前的状态。
还有一个问题就是,如果要删除某张图片,而那张图片恰好是一个图集的封面,那么这个图集也会被删除,同时该图集对应的新闻也会被删除。这一点就比较麻烦。
目前我的ddtcms就是采用的此种方案。2010年11月6日
方案二 给图片添加字段,设置是否为封面。比如说is_cover
这样的话,只要在view中处理好就行。保持图集中的图片始终只有一张图片的is_cover=true.此种方式需要修改photologue这个开源模块的model。
方案三 就是在方案一的基础上,把一对一关系改为foreignkey,并设置为unique=true。
这样在删除图片的时候,应该不会把图集和新闻也删除了。这个有待尝试,如果效果比方案一好的话,就采用此种方式。