2010-07-26 73 views
1

我有數據庫圖兩部分的問題,我需要你的指導:) 數據庫有很多表,其中一個是關於員工,另一個關於客戶和...!我有兩個表(產品和OrderDetail)的問題我的產品表有3列(ProductID,名稱,成本)和其他表是OrderDetail有這些列(OrderDetailID,成本,數量)我還沒有創建這個數據庫我有發現它就像互聯網上的樣本數據庫,但我對OrderDetail和Product表中的這兩個Cost有問題,這些Cost之間有什麼區別?他們是否相同? 謝謝關於數據庫的問題

EDITED:對不起,我犯了一個錯誤,ordeDetail表的ID是產品表和訂單表的主鍵的組合,產品ID和訂單ID,而OrdeDeatil表是弱實體。 SO OrderDeatil((ProductID,OrderID),Cost,Quantity)

回答

2

我認爲產品表中的成本是產品的當前價格。另一方面,訂單明細表中的成本是該產品爲該特定訂單支付的價格。

產品價格可能上漲或下跌,或者可能已經爲特定訂單提供折扣。訂單明細表中的字段將存儲此信息。


UPDATE:而且你更新的問題,這是有道理的。這意味着每個訂單隻能列出一次相同的產品。訂單詳細信息表是存儲訂購該產品的數量(數量),我會說成本是爲一件商品支付的價格。它可能是總數(價格*數量),但這種表結構並不常見。

+0

這是正確的,產品表中的成本是unitCost,OrderDetail中的成本是UnitCost *數量?因爲OrderDetail的PK是ProductID,而OrderDeatil是一個弱實體,因此當您更新Product表中的Cost時,OrderDeatil中的Cost將自動更新。 – user355002 2010-07-26 06:30:29

+0

@ matin1234:你確定OrderDetail的PK不是(OrderID和ProductID)的組合鍵嗎?因爲如果它只是ProductID,訂單將無法包含其他訂單的產品......表格結構'OrderDetail(ProductID,Cost,Quantity)'似乎並不是非常有用,除非存儲有關折扣折扣的信息。但在這種情況下,名稱'OrderDetail'是非常具有誤導性的。 – 2010-07-26 06:35:24

+0

是的,但是因爲我對這兩張桌子有問題,我什麼也沒說,好的,謝謝我會編輯它。 – user355002 2010-07-26 06:37:10

1

不知道這個數據庫究竟是爲了捕獲什麼,我不能肯定地說,但作爲一個粗略的猜測,我認爲ProductCost列是該產品單個單元的成本, OrderDetailCost列是某種「某種」數量的訂單的成本 - 很可能是某種產品的數量。請注意,除了OrderDetail表與Product表之間沒有任何關聯之外,如果這兩個表是用於鏈接的,則通常會在OrderDetail表中將Foreign Key鏈接到Product表。目前,沒有辦法匹配OrderDetail s到Product s。

+0

對不起,我編輯了我的帖子! OrderDeatil的主鍵是產品ID的主鍵,因爲OrderDeatil是一個弱實體。 – user355002 2010-07-26 06:33:47