数据库设计2个具有不同交货时间的产品

时间:2012-01-18 10:07:58

标签: mysql database database-design

您好我正在尝试为我的问题定义的在线商店构建一个数据库 订单可以包含许多具有不同交货日期的商品例如,1本书将需要2天才能交付另一个需要4-5天才能交付。

我有一个产品表,其中包含产品交付时间,如2-3个工作日或4-5个工作日

在我的交货表中,我将如何描述这个,因为它包含1个订单ID我可以向用户显示上限时间,如5天交货但是如何向后端用户显示2个不同的订单时间和状态1个订单

我如何将它们显示在我的交货表中,因为它们是一个订单,但具有不同的交货时间..

2 个答案:

答案 0 :(得分:1)

这是物品和交货日期之间的1:1关系。在ITEM和DELIVERY表之间建立外键关系,或者在项目表中添加DELIVERY_DATE列。

当您认为关系在订单和交货日期之间时,困难就出现了。

您需要一种方法来汇总订单中的所有商品,以便提供整体交货日期。您可能希望让用户能够向下钻取以逐项查看详细信息。

答案 1 :(得分:1)

您可以像这样查询:

$rowset = $db->fetch_all( 'SELECT ... FROM orders
    INNER JOIN products ON ...
    INNER JOIN delivery ON ...
    ORDER BY products.id, delivery.date
    WHERE ...');

这将导致您为每个交货日期条目设置记录/行(您可以按日期对它们进行分组,或者执行类似的操作)。

然后通过以下代码浏览它们:

$productID = 0;
foreach( $rowset as $row){
    if( $productID == $row.productId){
        // Code for multiple dates
    } else {
        // Code for new item
    }
    $productID = $row.productId
}

这适合吗?