Laravel在点击路线时会创建数据库条目吗?

I'm still teaching myself laravel. I'm making an order form in laravel and i have a table full of products and i want to make it so that when make a new order and add the products. It would make its own order when i click new order it will make a new order number up and save it to the database?

Would the best way be to make an orders table with

Schema::create('westcoOrders', function (Blueprint $table){
        $table->increments('id');
        $table->string('orderNumber');
        $table->json('content');
        $table->tinyInteger('sent')->default(0);
        $table->tinyInteger('delivered')->default(0);
        $table->timestamps();
    } );

or would it be better having a table multiple tables so i have one like the one above without the json entry and then have a westcoOrderItems table like this?

Schema::create('westcoOrderItems', function (Blueprint $table){
        $table->string('orderNumber');
        $table->string('quantity');
        $table->string('productName');
        $table->string('productCode');
        $table->string('price');
        $table->timestamps();
    } );
}

So then i have link the order number to the other table. Or is that a long way to go around it? and if i do it that way i will have to find a way to make an order number when i hit the new order route?

I feel like I'm doing this the wrong/long way?

In my opinion, something like the following would be better:

// For orders
Schema::create('orders', function (Blueprint $table){
    $table->increments('id');
    $table->tinyInteger('is_delivered')->default(0);
    $table->tinyInteger('is_paid')->default(0);
    $table->timestamps();
});

// For ordered_items (one order may contain many products/ordered_items)
Schema::create('ordered_items', function (Blueprint $table){
    $table->increments('id')->unsigned();
    $table->integer('order_id')->unsigned(); // fk for order.id
    $table->string('quantity')->unsigned();
    $table->string('productName');
    $table->string('productCode');
    $table->decimal('price', 10, 2);
});

Then the models, for example:

namespace App;

use Illuminate\Database\Eloquent\Model;

class Order extends Model {

    public function items()
    {
        return $this->hasMany('Item::class');
    }
}

The Item class for ordered_items:

namespace App;

use Illuminate\Database\Eloquent\Model;

class Item extends Model {

    protected $table = 'ordered_items';

    public function order()
    {
        return $this->belongsTo(Order::class);
    }
}

Hope you got the idea. This is the simplest one.