2012-11-24 40 views
0

假設我有一個擁有許多用戶的應用程序(壟斷遊戲),每個用戶都有一個餘額,並且他們之間進行交易。保存壟斷遊戲數據庫中的數據

我有一個與所有用戶(用戶ID,名稱,電子郵件)和一個表與所有交易和使他們(用戶1,用戶2,金額)的用戶表。

現在如果我需要爲每個用戶提供一個餘額,最好是每個用戶在用戶表中保持平衡,並在每次交易時更新它,或者我應該從交易表中計算它每次我都不想表達它?假設這個遊戲會有很多流量,那麼對於10,000多個用戶和每週大約120,000個交易,更合理的方法是什麼?

回答

0

在用戶表中創建新的列餘額是一種冗餘,因爲可以使用事務表上的查詢來計算該值。

但是,DB設計過程之一是估計在特定表上可能發生的讀寫次數。如果這個估計值很高,這是邏輯的,並且允許簡化一些讀取或寫入的結果,並且在數據庫上具有冗餘,以便以較少的處理時間提供網頁請求的許多讀取和顯示值。

在您的情況下,餘額列更新可以通過交易表上的觸發器來完成,該表可以計算兩個用戶的餘額。