请考虑我在Laravel 4中的数据库结构......
$table->increments('id');
$table->integer('user_id');
$table->integer('campaign_id');
$table->string('location');
$table->string('color');
$table->string('contacts');
$table->string('pickups');
$table->string('interviews');
$table->string('guest_posts');
$table->string('book_review_opp');
我有一个Campaign
表/模型,然后上面是属于Campaign Status's
的{{1}}表/模型。
当我创建新广告系列时,我必须从上表中插入50多条记录,每个美国州都要插入1条记录。我还必须添加所有加拿大领土。
因此,当我创建一个记录时,当我编辑一个广告系列时,我会使用保存按钮为每个州显示这些设置。
保存记录后,必须保存50个州和加拿大地区。
我在问是否有更有效的方法可以同时保存所有大量的记录?
答案 0 :(得分:2)
IMO,插入记录的最有效方式是:
DB::table('name')->insert(<array of 50 arrays>);
或
CampaignStatus::query()->insert(<array of 50 arrays>);
答案 1 :(得分:0)
您可以将状态编码为JSON,然后引入campaign-&gt; states列。
您需要做的就是$table->string('states')
,然后是$campaign->states = json_encode($states_array);
您甚至可以设置accessor and mutator,以便插入状态的任何内容都是json_encode'd,然后在访问时进行解码