【发布时间】:2020-02-10 04:18:20
【问题描述】:
我的计划是在我的多供应商电子商务网站上,订单将由供应商自己完成。但是,我不希望我的网站用户对来自相同/不同供应商的 2 种产品的 2 种订单感到沮丧。我想为他们提供添加到购物车的选项,并且只进行一次结帐。
我的数据库设计技能达不到标准,我不知道应该如何在我的数据库中处理这种情况。我现在有两张桌子
订购
Schema::create('order', function (Blueprint $table) {
$table->increments('id');
$table->string('order_number');
$table->integer('customer_id');
$table->integer('order_status'); // Does not make sense as if order has products from multiple vendors. There will be different status from each vendor
$table->timestamps();
});
订单详情
Schema::create('order_detail', function (Blueprint $table) {
$table->increments('id');
$table->integer('order_id')->unsigned();
$table->string('product_id')->unsigned();
$table->integer('vendor_id')->unsigned();
$table->tinyInteger('quantity')->unsiged();
$table->string('sku');
$table->integer('order_status_code');
$table->timestamps();
});
因此,如果客户在一个订单中购买了多件商品。每个项目将在order_detail 表中与其vendor_id 链接。假设一个供应商处理了订单,而另一个供应商正在等待处理。我如何反映这是主要的order 表?
谢谢
【问题讨论】:
-
我也想知道这个问题。我认为您应该为订单创建 2 个表。一个用于客户,一个用于供应商.. orders_vendors 将引用 orders_customers.. 每当供应商处理订单时,您检查所有其他供应商是否也处理了如果他们处理了,您处理 customers_order
标签: database database-design e-commerce