2016-03-06 93 views
1

我正在爲我的僱主爲不同的租賃投資建立一個數據庫。我希望每個記錄都有投資代碼,並在接下來的10年內預計每月的現金流量。投資代碼,月份和現金流 -更多記錄或更多記錄?

我可以用120米欄的所有未來現金流量包月,

OR

我只有3個字段設置此。

哪個更好?我可能每個月會有5000個新的投資。第一個產生5000個記錄,第二個產生600000個。這是一個問題嗎?我會根據數據庫其餘部分的關係運行查詢和內容。哪種方法可以提供最佳性能?

感謝先進!

+0

任何方式就可以了。問題是哪個更快或更有組織?這取決於你正在做什麼樣的查詢 - 但通常人們會創建關係表,這樣他們就可以將事物分解成更有組織的形式,並避免重複數據。 – Tasos

回答

0

我喜歡第二種方法,它可能會有更大的表格大小,因爲投資代碼會重複每條記錄,但是會更規範化。如果您有適當的主鍵設置,我不認爲應該有任何性能問題。對於新的投資還有另一個好處:你不需要有120個領域,因爲他們似乎在任何月份開始。

+0

這不是更規範化。規範化通過加入到它的較小表來替換表,因此使用相同的列名。這只是一個「更好」的設計。因爲它允許我們編寫查詢返回不同數量的月度現金流,而無需將多個子表達式硬連接到我們的查詢中。 – philipxy

0

更新...

我同時使用寬而短VS使用成千上萬的測試狹窄和高大的選擇我自己的測試一樣。

兩者的查詢性能大致相同(只要查詢設計良好並且不返回單個記錄)。如果您使用秒錶,較寬的桌子稍微好幾秒,但高度仍然可以接受。

主要區別在於生成的數據量。寬只需要200mb。高達1GB的相同信息!在高的數據寫入需要更長的時間。

鑑於Access有2GB限制,並且我不需要靈活性來添加過去5年的價值(我知道這是不需要的),我想我會選擇1 - 短而寬的桌子。

我有點驚訝高桌有多大 - 我會雖然Access將能夠壓縮數據更好一點。