【发布时间】:2020-03-23 21:37:33
【问题描述】:
我有一个当前具有此架构的培训应用:
trainings
id
name
speakers
id
first_name
last_name
training_speaker
id
training_id
speaker_id
training_speaker_dates
id
training_speaker_id
date
time
一个训练可以有多个演讲者,一个演讲者可以有多个训练。目前,我正在通过其枢轴模型访问培训演讲者。
class Training {
public function speakers() {
return $this->belongsToMany('App\Speaker')->using('App\TrainingSpeaker');
}
}
假设我们有一个为期 3 天的培训,演讲者可以参加第一天,也许只是上午,这就是为什么 training_speaker_dates 有日期和时间(下午的上午)。
是否可以在 Training 类下的扬声器方法中也包含 training_speaker_dates?
或者,我应该删除training_speaker_dates 并将字段添加到training_speakers 表并允许具有唯一ID 的重复值(training_id 和speaker_id)吗?那么它看起来像这样
training_speaker
id
training_id
speaker_id
date
time
【问题讨论】:
-
不知道是否可以不使用第三方软件包或不通过您自己实现某种“有很多”。但是,您为什么没有使用
date和time作为training_speaker表上的枢轴属性? -
@user3532758 我在存储在 training_speaker 时使用 attach 方法,所以我只能保存一个我猜的唯一的 training_id 和 speaker_id
-
啊!我知道了。因为有
id我想你可能已经计划在那里重复配对。我之前在类似的情况下使用过syncWithoutDetaching。对不起,我帮不上忙,希望有更多经验的人能来。无论如何,祝你好运。 -
别担心@user3532758 伙计!感谢您分享您的想法。
标签: php mysql database laravel eloquent