2013-02-10 67 views
7

我被要求描述這個數據結構有什麼問題,以及如何改進它。這個數據結構有什麼問題?

下面是數據結構:

Image

這是我到目前爲止有:

  • 汽車的價格僅設置如果汽車在展廳,它會更有意義的是把車的價格放在車表中

  • 在車表中存儲NULL數據是沒有意義的,之三有一個類似的佈局:

    Car table

  • 需要有一定量的標題來顯示有多少特定的車在展示廳裏一些展廳具有相同汽車的多個

我制定的新表格仍然有重複的數據,我依稀記得在制定數據結構時是不是不行,所以我認爲我需要製作第三個表格?我真的不確定..

我只是需要一些幫助,以瞭解當前的數據結構有什麼問題,並且如果有什麼方法可以改進它,任何幫助都會被讚賞。

+0

FWIW,你的意思是'數據庫模式'而不是'數據結構' – Patashu 2013-02-10 22:31:58

+0

@Patashu:模式只是名稱間距 - 對象的集合。結構就是問題所在。 – 2013-02-10 22:32:29

+0

我們已經將它們學習爲數據結構,但是它的數據庫模式和 – user2058186 2013-02-10 22:33:17

回答

8

一個問題是,Car表存儲兩個不同的東西 - 它存儲的結果,它存儲模型。

所以,你應該拆分了,是這樣的:

賺:列makename,makecode

型號:列makecode(用於品牌外鍵),MODELNAME,modelcode

而現在展廳表只會涉及到模型,所以它不能錯誤地引用一個make。

由於一個模型可能有許多與其相關的陳列室表格行,因此無法將兩個表格有意義地合併,因此請將它們分開並從那裏開始。

+0

非常感謝大家的回覆,我打算跟你建議的3張桌子一起去:) – user2058186 2013-02-10 22:44:31

2

重複數據是不正確的。

我會改變「陳列室」爲「模型」,因爲可以有不同的模型子類別。 IE高爾夫TDI vs GTI等。 ...和基準價格(MSRP)適用於該模型。顯示房間狀態對定價沒有意義 - 有很多廣告,但不是在陳列室或地段。

我不認爲有一個NULLable列有任何問題,如果這是數據支持。要麼是沒有問題,只要有足夠的數據,就可以進行基準測試,看看最適合您的是什麼。但之後優化,而不是之前。

+0

非常感謝回覆:) – user2058186 2013-02-10 22:44:07

4

它看起來像汽車結構存儲汽車製造和汽車模型。那至少應該會發生一些警報。汽車就像福特,大衆和標緻都有自己的MakeCode。像嘉年華和高爾夫車型有自己的ModelCode

在原來的結構,車型是指自己的化妝品通過ParentCarId複製他們MakeCode。汽車製造商不是特定型號,並且爲其ModelCodeParentCarId分配了空值。

ParentCarId沒有任何意義,汽車是另一個孩子的意思是什麼?相反,一輛汽車屬於另一個表格所代表的另一個實體。此外,汽車不應該有MakeCode,因爲這是他們所屬品牌的屬性。顯然,製作和模型是非常獨特的,應該用不同的表格來表示。

將表格分成兩部分是有意義的:一部分用於製作,一部分用於模型。使其具有IDNameMakeCode。模型將具有ID,Name,ModelCodeMakeIdMakeID的外鍵)。

+0

非常感謝回覆,我會試試:) – user2058186 2013-02-10 22:43:44