【发布时间】:2011-04-16 12:34:29
【问题描述】:
我想要完成的事情:
- 图片应为单张图片或相册中的图片
- 带有页码的相册和单张图片的可浏览列表
- 浏览时不显示相册内的图片,仅显示相册封面
到目前为止,我的方法是:
- 代表单个图像和单个专辑的模型
- 一个数据库表内容,包含id、title、thumbnailFile和imageFile等。
- 一个数据库表相册,包含相册 ID、相册标题等。
- 一个数据库表album_content映射什么相册里面有什么内容
- 一个数据库表浏览,其中包含专辑的 ID,以及不在专辑内的内容的 ID + 用于缩略图预览和排序的复制属性(文件名、标题、视图、日期等)
- 分页器仅使用后一个表,而视图使用指向内容表的模型
我不认为上面的速度太糟糕了,但我觉得它不是特别优雅,我正在寻找一种更好的方法来做到这一点,并希望减少缓存/无效的元素数量.到目前为止,我一直在考虑以下几点:
- 数据库中只有一个数据副本(以某种方式组合内容、相册和浏览,并且仍然能够按日期、视图等快速计数和排序数据集)
- 远离任何可按列排序/排序的联接
- 将所有图像视为单个模型实例,也在相册内
我的主要问题是专辑的日期、观看次数等与其中的内容无关,我希望按不在专辑内的内容的日期+应该具有唯一标识符的专辑日期进行排序。相册也有与内容无关的列。
有什么好办法解决这个问题吗?
*编辑:为了速度,我想我只能使用单独的浏览表。有没有办法让 Zend dbTable 引用浏览 专辑和内容的视图列,以便专辑或内容中的 onUpdate 使用 Zend 中的 CASCADE 逻辑来更新两个表?
【问题讨论】:
-
一张图片可以出现在多个相册中吗?一张图片可以是单张的,也可以是专辑中的?一张图片可以在同一张专辑中出现多次吗?相册可以没有图片吗?您要浏览同一列表中的单个图像和相册吗?
标签: php database database-design