Database 数据库-为Laravel项目制作媒体库(结构方法)
我知道问题不太清楚,我会试着证明这一点 主要问题: 我正在尝试为我网站上的所有媒体制作一个媒体库。我有3种媒体图像、视频和滑块。。滑块介质中有一些图像 我想做什么 如何在我的数据库中创建一个包含这些对象的模型,以便->如果我想在小部件中使用媒体,或者在博客或网站任何部分的帖子中使用媒体,我只需给这个网站部分媒体对象的id 我尝试过的Database 数据库-为Laravel项目制作媒体库(结构方法),database,laravel,database-design,eloquent,Database,Laravel,Database Design,Eloquent,我知道问题不太清楚,我会试着证明这一点 主要问题: 我正在尝试为我网站上的所有媒体制作一个媒体库。我有3种媒体图像、视频和滑块。。滑块介质中有一些图像 我想做什么 如何在我的数据库中创建一个包含这些对象的模型,以便->如果我想在小部件中使用媒体,或者在博客或网站任何部分的帖子中使用媒体,我只需给这个网站部分媒体对象的id 我尝试过的 媒体表中有(id,媒体类型,媒体类型表中的id) image具有(id,path)的表 Video具有(id,path)的表 滑块具有(id,路径img\u 1,路
媒体
表中有(id
,媒体类型
,媒体类型表中的id
)
image
具有(id
,path
)的表
Video
具有(id
,path
)的表
滑块
具有(id
,路径img\u 1
,路径img\u 2
,路径img\u 3
)的表
但我不知道如何关联它们来正确检索媒体对象
此库数据库是否有更好的结构?以及如何关联表
编辑==>
再想一想:
滑块实际上是由一些图像构成的,那么我们只有两种类型的视频和图像,虽然它们有相同的结构,但结构会是这样的
媒体
具有(id
,类型
,id数组
)的表
类型
=>对于类型的演示,将不使用它
ID的数组可以有一个或多个库对象
Gallery
具有(id
,path
)的表
然而我不知道Laravel是如何实现这种方法的,因为我是新手。。有什么帮助吗 最简单的方法是将DB更改为以下3个表
media(id,media_type)
media_properties (id,prop_name)//in your case path.
media_to_properties ('media_id','prop_id','val')
然后您将有两个模型,它们大致如下所示:
class MediaProperty extends Eloquent{
$table = media_properties
$filleable = array('prop_name');
}
class Media extends Eloquent{
$table = $media
public function mediaProperties(){
return $this->belongsToMany('MediaProperty','media_to_properties', 'media_id', 'prop_id')->withPivot('val');
}
}
当您调用id为just add with(mediaProperties)的模型时,这将允许您使用路径以外的更多属性扩展媒体对象
用laravel 4.2编写的Slider是否总是只有3个图像?不,我想使其动态化,但我不知道如何实现。如果你知道如何才能做到这一点,它将是伟大的滑块很容易,只要有一个滑块表和一个滑块图像表与滑块id作为它的外键。不过,处理不同的媒体类型可能有点棘手。在数据库方面,这并不难,棘手的部分是识别您在表示层处理的媒体类型。