我知道Model :: insert()但是它的关联关系呢?Laravel多插入和它的关系
我们知道我们可以有100个问题表格提交之后,但相应的问题有大约4回答(对于选择题)
我们的问题的数据是这样的
$question = [
'1' =>[
'name'='Who is first president of America'?
...
]
...
'100' =>
'name' = 'When did Christopher Colombus discovered America'
....
...
]
$answers = [
'1'=>
[
'1' => 'Wilston Churcil',
'2' => 'George Washinton'
....
]
...
...
]
$correct_answer = [
'1'=>['2']
...
]
关系
- 问题有很多答案
- 问题有很多正确答案
我们正试图在一次
上传了很多问题,我们可以清楚地看到,如果我们不出去laravel创造否则我们将运行N + 1个问题,为100问题,我们可以大概需要100 + 400 + 100个查询效率极低?
如果问::插入()返回插入问题的ID那么这将是容易的,但它只是返回布尔..
反正是有解决这样的问题,而无需使用N + 1点的问题。
我试着用n + 1个后台作业,但它确实是极其缓慢:(
任何解决办法和黑客将是确定:(
https://laravel.com/docs/5.4/eloquent-relationships#inserting-and-updating-related-models有一些通过模型对象插入的选项。 'saveMany'看起来像是你所需要的 – apokryfos
不会造成n + 1问题? 你需要保存每个单独的问题轮到抓住这些所有并插入答案和相应的答案? – user80946
没有想法在插入下一个问题之前插入问题及其答案。另外N + 1的问题是选择不插入。 – apokryfos