Php 一元关系的关联表
我正在开发一个字幕机器人,其中:Php 一元关系的关联表,php,database-design,eloquent,database-relations,associative-table,Php,Database Design,Eloquent,Database Relations,Associative Table,我正在开发一个字幕机器人,其中: 一部电影有多个字幕(取决于质量和语言) 一部连续剧有多季,多集有多个字幕(与电影相同) 这些是我的桌子(感谢): 问题是,据我所知,关联表适用于多对多关系(如果我错了,请纠正我),我有点被困在这里,尤其是使用Eloquent的belongsToMany方法: class Subtitle extends Model { public $guarded = []; public $timestamps = false; publi
- 一部电影有多个字幕(取决于质量和语言)
- 一部连续剧有多季,多集有多个字幕(与电影相同)
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');
}
}
但问题是,一个字幕属于一集,而一集可能有很多字幕。
我想知道如何使用关联表进行这种结构。
或者我应该改变结构吗?所以我试图通过多态关系实现的目标是可能的, 删除2个关联表,并将2个字段添加到字幕表中: 例如:父项类型、父项id 然后我可以使用: 字幕:
class Subtitle extends Model {
public $guarded = [];
public $timestamps = false;
public function Parent()
{
return $this->morphTo();
}
}
系列节目:
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');
}
}
希望它能帮助其他人。@Barmar有很多关系,但目前的结构无法实现这一点。因为插曲和电影不在同一张桌子上。或者我把概念搞错了,我对数据库一窍不通