我知道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