2

我想知道設計訂單管理系統數據庫的最佳實踐。我有一個訂單表和訂購表。 我目前的設計如下。訂單管理數據庫設計

 
    Order table 

    orderid  int primary key 
    totalprice int 
    orderstatus int 

    Order Items table 

    orderitemid int primary key 
    orderid  int foreign key 
    productid  int 
    quantity  int 

orderid是這裏的外鍵。 在訂單商品表中訂購多個訂購商品。 它是一對多的關係。

這是設計的表是最好的方法還是應該是使用下面的設計

 
    Order table 

    id   int  primary key 
    orderid  int 
    orderitemid int  foreign key 
    totalprice int 
    orderstatus int 

    Order Items table 

    orderitemid int  primary key 
    productid  int 
    quantity  int 

請描述在使用這兩種設計的優點和缺點。 也讓我知道,如果一些其他更好的設計是可能的。

+1

第二個設計顯然是錯誤的,因爲它只允許訂單最多隻有一個*項目。 – user2864740

+0

請給我一個很好的選擇。 – Shanky

+0

@ user2864740,情況並非如此。 orderid不是主鍵。 – Mau

回答

2

選項1是唯一合理的選擇

由於1 Order有很多Order Items,在orderIdOrders並多次在Order Items舉行一次。

使用選項2,這種關係是可能的,但是您會不必要地複製數據,因爲您無法對Order中的一個記錄擁有多個OrderItemId值。

這是基本的標準化。

+0

你可以建議有很好的選擇嗎? – Shanky

+0

@Shanky選項1 – Tanner

+0

有什麼問題沒有錯,但我想知道是否有更好的方法可用 – Shanky