我在设计数据库方面遇到了一些问题。 在网页上,我需要按照指定的顺序显示图像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等。 我不能一个一个地写它们,因为在一些四边形中不可能有所有的图像。
由于
答案 0 :(得分:1)
嗯,这是处理文件引用的一种非常糟糕的方法。您所追求的基本上是一组图像,您称之为四合一,我称之为图库或集合。正确的数据库设计就是这样的例子。
Project hasOne Gallery,Gallery hasMany Image
由于多种原因,每个文件都应该是一个记录。每个项目都有一组(图库)图像。
我不完全明白你尝试做什么,但这可能也有效:
Project hasAndBelongsTomany Image
联接表将具有订单字段以为其提供特定订单。在您想要确定多个图像的情况下,此DB设计将适用于您。
签出我的FileStorage plugin,它将处理文件处理并保留对它们的引用。