【发布时间】:2014-06-22 11:57:30
【问题描述】:
TABLE presentation {
id BIGINT
unique_id BIGINT
name VARCHAR (128)
description VARCHAR (256)
updated_at TIMESTAMP
created_at TIMESTAMP
}
我正在创建一个允许用户创建演示文稿的应用程序。每个演示文稿都构建在一个布局中,每个布局包含多个位置,每个位置都由一个资产(文本、图像、视频)占据。
我正在尝试找出在我的演示文稿、布局和资产之间建立联系的最佳方式。
最初,我想为presentations、layouts、positions、assets 设置一张桌子。我显然需要这个架构灵活,所以我可以添加几个新的 layouts 具有不同数量的位置。
我可以像这样创建我的presentation 表:
TABLE presentation {
id BIGINT
unique_id BIGINT
name VARCHAR (128)
description VARCHAR (256)
position1 (BIGINT) - would contain an asset_id
position2 (BIGINT) - would contain an asset_id
position3 (BIGINT) - would contain an asset_id
position4 (BIGINT) - would contain an asset_id
updated_at TIMESTAMP
created_at TIMESTAMP
}
但这是非常短视的,并且只允许在一个演示文稿中总共有 4 个位置......但我现在正在走向更大更糟糕的事情。
或者,我以某种方式在presentations、layouts、positions 和assets 之间建立了联系,这将允许完全的灵活性......这就是我想要获得一些帮助的原因。
我不太确定我是不是想太多了……最重要的是,我真的不确定如何在这些模型之间建立正确的联系。
【问题讨论】:
-
您是否已经在 Eloquent 中设置了模型和关系?
-
你能指定你的模型应该如何相互关联吗?正如在演示文稿中可以有多个布局一样,一个布局可以有多个位置等。
标签: php mysql database laravel-4 eloquent