2015-10-16 101 views
0

我今天向我的講師展示了我的數據庫(基於電子商務網站)。SQL:ERD圖 - 數據冗餘。

他很快指出了一些問題,比如數據冗餘。例如,我有5個表中的用戶ID。

我的數據庫是基於我的ERD:http://imgur.com/X02JlF3

我只是找了一些建議在清理我的ERD這樣我就可以生產出更高效的數據庫。

如果我從除用戶以外的每個表中刪除用戶標識,那麼我怎樣才能提供帶有交易報告的用戶標識,例如?或者用戶ID需要在每個表中都是外鍵?

謝謝,抱歉,如果這是一個不適當的問題!只是不確定清理此ERD的正確方法。

+0

關於'user_id'你需要那些,你沒有重複'user_id'你正在使用外鍵鏈接表fk –

+0

我認爲他/她暗示你應該使用代理鍵。如果有人想更改他們的用戶ID,會發生什麼情況?你必須在所有的表格中改變它。一個代理鍵你不會。您可能仍然需要使用戶ID唯一.. – xQbert

+0

@xQbert是的,他提到,如果我想更新產品名稱,它需要在幾張表中完成。 –

回答

0

經過快速瀏覽,我認爲使用UserID作爲外鍵是可以的。例如,我看到的冗餘更類似產品名稱,產品說明,價格和庫存水平等。這些值應該只在產品表格和願望清單中用於作爲FK加入該表格的ProductID中。考慮到這一點,我相信你會在你的ERD中看到其他例子。

+0

謝謝。我已經刪除了一些項目,以提出這個:http://imgur.com/vS2tHKc。我認爲現在好多了。舉個例子,我只是有點困惑,它只有兩個主鍵。授予主鍵允許我們訪問產品信息的產品表,但不存儲實際列表。 –

+0

我可能是錯的,但你怎麼知道賣了什麼?我沒有看到product_ID銷售結構中的任何東西通常都有一個標題來記錄總成本等...以及單個項目,折扣,數量等的詳細信息... – xQbert

+0

銷售表是銷售ID,數量,日期,時間,總價格和tradactionID作爲外鍵。我是否應該將產品ID添加爲外鍵,這將允許銷售表訪問產品信息? –