OneToMany 关系的关联 table
associative table for OneToMany relation
我正在开发字幕机器人,其中:
一部电影有多个字幕(取决于质量和语言)
一个系列有多个季节,多个剧集有多个字幕(与电影相同)
这些是我的表格(感谢 DaveRandom):
问题是,据我所知,关联表用于多对多关系(如果我错了请纠正我),我有点被困在这里,尤其是 Eloquent 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');
}
}
但问题是,一个字幕属于一个剧集,而一个剧集可能有很多字幕。
我想知道如何将关联表用于这种结构。
或者我应该改变结构?
所以我试图通过多态关系实现的目标是可能的,
删除了 2 个关联 table,而是将 2 个字段添加到字幕 table:
例如: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');
}
}
希望对其他人有所帮助。
我正在开发字幕机器人,其中:
一部电影有多个字幕(取决于质量和语言)
一个系列有多个季节,多个剧集有多个字幕(与电影相同)
这些是我的表格(感谢 DaveRandom):
问题是,据我所知,关联表用于多对多关系(如果我错了请纠正我),我有点被困在这里,尤其是 Eloquent 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');
}
}
但问题是,一个字幕属于一个剧集,而一个剧集可能有很多字幕。 我想知道如何将关联表用于这种结构。 或者我应该改变结构?
所以我试图通过多态关系实现的目标是可能的, 删除了 2 个关联 table,而是将 2 个字段添加到字幕 table: 例如: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');
}
}
希望对其他人有所帮助。