什么是基于用雄辩的外键插入和更新多个行的最好方法?

问题描述 投票:-1回答:1

我有一个名为“答案”,这将顾客的答案存储有关问卷调查表。该表看起来像这样

answers
+-----------------+
|id (PK)          |
|customer_id (FK) |
|question_id (FK) |
|value            |
|_________________|

我的要求会是这样

{
    "customer_id":1,
    "answer": {
        "1":"My Name", //"1" is question_id , "My Name" is value
        "2":"My Phone Number" //"2" is question_id, "My Phone Number" is value
    }
}

我想要做到的,是由一个做上洋洋洒洒一个查询或单个动作来代替的foreach答案之一检查question_id和CUSTOMER_ID已经存在,它会更新否则会插入答案表“答案”。

这样做的foreach /每回答一个数据一个循环,它不应该是一个困难的问题。但是,如果我已经在“答案”表有3000个++行那么这将是一个很大的问题。

什么是做到这一点的最好办法?也许是有什么我可以使用基于外键检查,做好群众插入/更新多行第三方库?

php mysql laravel eloquent slim
1个回答
0
投票

您可以通过laravel的UpdateORCreate方法,做你想要的确切的事情做到这一点。

在一般的说法是象下面这样:

$model=Model::UpdateOrCreate(["condtion1"=>"value1",...],["field1"=>"value1",...]);

在你的情况下,它会像下面:

$answer=Answer::UpdateOrCreate(["customer_id"=>$customer_id,"question_id"=>$question_id],["value"=>$value]);

欲了解更多信息,请Laravel Eloquent Documentation (Other Creation Methods)

© www.soinside.com 2019 - 2024. All rights reserved.