我擔心我不知道我在做什麼。數據庫設計 - 關於效率的問題(和一般設計質量)
1:
我有一個表稱爲ticket
具有稱爲total
柱。當總數更新時,我想保留它的記錄(舊總數等),所以我決定刪除total
列並創建一個名爲ticket_total
的表,其中列ticket_id
,total
和datetime
(最近的當然是「當前」總數)。
或
2:
然後我意識到我會在後面想給我的客戶通過total
,排序票或拉手聚集總數,等等。所以,我決定,而不是報告的能力將total
列放回ticket
,並在更新總數時直接更改total
列,但首先創建一個ticket_total
行作爲先前的total
的記錄。
看起來版本2會非常高效,因爲我不需要儘可能多地查詢相關的ticket_total
表,但是我想知道你的數據庫專家在那裏想什麼。我只是在學習數據庫設計,並擔心我永遠不會擅長它。
謝謝。我目前使用Django的'@ transaction.commit_on_success'來包裝創建兩個記錄的方法。你認爲#2是一種「好」的數據庫設計實踐嗎?如果沒有,我有完全的靈活性來改變它。 – orokusaki 2010-10-04 03:29:55