创建用于按指定顺序存储分组图像的模型

时间:2013-11-20 13:39:36

标签: php sql cakephp cakephp-2.0

我在设计数据库方面遇到了一些问题。 在网页上,我需要按照指定的顺序显示图像4,但不是每个图像都必须上传。

选项1:

我创建了一个模型image_quad,其中包含字段img1,img2,img3,img4

每个图片都会链接到其他项目,所以我不得不添加新的字段,看起来像

img1, img1_project_id, img2, img2_project_id, img3, img3_project_id, img4, img4_project_id

问题是如何将该模型绑定到Projects?它不使用蛋糕约定(project_id),我认为为$this->Project->find()编写img(x)_project_id并不好。

选项2

Model Quad

使用[id][quad_id][project_id][image][order]的QuadImage模型 订单放在四(1,2,3,4)

现在更好但是现在如何在视野中的好地方显示图像?我的意思是QuadImage在第3位有“订单”3等。 我不能一个一个地写它们,因为在一些四边形中不可能有所有的图像。

由于

1 个答案:

答案 0 :(得分:1)

嗯,这是处理文件引用的一种非常糟糕的方法。您所追求的基本上是一组图像,您称之为四合一,我称之为图库或集合。正确的数据库设计就是这样的例子。

  

Project hasOne Gallery,Gallery hasMany Image

由于多种原因,每个文件都应该是一个记录。每个项目都有一组(图库)图像。

我不完全明白你尝试做什么,但这可能也有效:

  

Project hasAndBelongsTomany Image

联接表将具有订单字段以为其提供特定订单。在您想要确定多个图像的情况下,此DB设计将适用于您。

签出我的FileStorage plugin,它将处理文件处理并保留对它们的引用。