Database 数据库-为Laravel项目制作媒体库(结构方法)

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,路

我知道问题不太清楚,我会试着证明这一点

主要问题: 我正在尝试为我网站上的所有媒体制作一个媒体库。我有3种媒体图像、视频和滑块。。滑块介质中有一些图像

我想做什么 如何在我的数据库中创建一个包含这些对象的模型,以便->如果我想在小部件中使用媒体,或者在博客或网站任何部分的帖子中使用媒体,我只需给这个网站部分媒体对象的id

我尝试过的

媒体
表中有(
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作为它的外键。不过,处理不同的媒体类型可能有点棘手。在数据库方面,这并不难,棘手的部分是识别您在表示层处理的媒体类型。