0

我工作的一个字幕BOT其中:的一对多关系关联表

  • 电影具有多字幕(视质量和语言)

  • A系列有多次发作多发季节有多个字幕(同一部电影)

这是我的表(感谢DaveRandom):

enter image description here

的问题是,据我所知关联表是许多一对多的关系(纠正我,如果我错了),我有点困在这里,尤其是雄辩的belongsToMany方法:

class Subtitle extends Model { 
    public $guarded = []; 
    public $timestamps = false; 


    public function SeriesEpisodes() 
    { 
     return $this->belongsToMany('SeriesEpisode', null, null, 'series_episodes_subtitle'); 
    } 


    public function Movie() 
    { 
     return $this->belongsToMany('Movie'); 
    } 
} 

但问题是,小标题belongsToOne插曲,而一个插曲可能有很多字幕。 我想知道如何使用关联表的结构。 或者我应该改变结构?

+0

@Barmar是有很多关系,但这是目前的结构无法实现的。因为情节和电影不在同一张桌子上。或者我的概念错了,我对数据库并不擅长 –

回答

0

所以我试图实现是可能的多态关系, 2关联的表被删除,而不是2个字段添加到字幕表: 例如:PARENT_TYPE,PARENT_ID

然后我可以使用:

字幕:

class Subtitle extends Model { 
    public $guarded = []; 
    public $timestamps = false; 

    public function Parent() 
    { 
     return $this->morphTo(); 
    } 
} 

series_episodes:

class SeriesEpisode extends Model { 
    public $timestamps = false; 
    public $guarded = []; 
    public function Subtitles() 
    { 
     return $this->morphMany('Subtitle', 'Owner'); 
    } 
} 

电影:

class Movie extends Model { 
    public $timestamps = false; 
    public $guarded = []; 
    public function Subtitles() 
    { 
    return $this->morphMany('Subtitle', 'Owner'); 
    } 
} 

希望它可以帮助别人。