我正在編寫一個應用程序,它按用戶和日期存儲不同類型的記錄。這些記錄按類別劃分。數據庫優化 - 每天存儲在不同的列中以減少行數
在設計數據庫時,我們創建了一個表User
,然後對於每種記錄類型,我們創建了一個表RecordType
和一個表Record
。
舉例: 存儲與我們有以下表用戶事件數據:
Event EventType
----- ---------
UserId Id
EventTypeId Name
Value
Day
我們的老闆指出,(有一些原因),我們要去商店很多行(用戶的*天),並提出一個想法,似乎有點瘋狂的對我說:與一年中的每一天一列創建一個表,像這樣:
EventTypeId | UserId | Year | 1 | 2 | 3 | 4 | ... | 365 | 366
這樣,我們只需要每年每用戶1行,但我們會得到很大的排。 由於大多數ORMs(我們正在爲這個項目使用rails3)使用select *來獲取數據庫記錄,我們不是在優化某些東西來「去優化」另一個嗎?
社區對此有何評論?
我認爲你老闆的想法不是最好的。每年的估計行數是多少?有什麼問題的數據庫引擎? –
如果在同一天有兩次相同的事件會發生什麼?你有沒有計劃過一次事件發生的次數? –
@CornelGhiban每個用戶每天約30行 – dcarneiro