2013-04-17 31 views
1

我想問一個好的數據庫設計建議來記錄用戶活動。關於DB設計在系統中記錄用戶活動的建議

目前我正在實施這樣一種簡單的網站,用戶可以在網站上發佈/編輯/刪除文章。

表日誌

- log_id 
- log_change[Enum: new/edit/remove] 
- log_date 
- member_id 
- post_id 

表後

- post_id 
- post_title 
- etc.... 

表成員

- member_id 
- member_username 
- member_pwd 
- etc.. 

使用此表,EV redtime用戶發佈新文章(或編輯/刪除)將記錄在日誌中的文章(以及它發生的時間)。但是,如果我正在處理的是一個更大的系統,那麼不僅用戶可以發佈文章,還可以執行其他操作,例如登錄/註銷(從系統),進行購買(交易),那該怎麼辦?

我應該去爲每個模塊不同的表?例如,如果系統有例如張貼文章,電子商務等模塊..所以我會對日誌表:

  1. 條日誌
  2. 電子商務日誌

每個地方表格會記錄每個相應模塊的活動。

回答

1

時在一個表中跟蹤所有類型的變化,您可以使用實體子類型的設計方法,其中常見的日誌屬性,如。對於具有附加屬性的更改,可以使用其他表,每種類型都有一個表。

每個子類型日誌表都使用外鍵引用公用表。通常,從子類型表到公用表的外鍵也是子類型表的主鍵,即關係是1:1。

在這樣的設計中,公用表通常包括一個列(分區屬性),它指示哪個子類型適用於公用表中的每個記錄。

這種方法減少了構建和維護日誌系統所需的代碼量,同時允許您保持日誌表的規範化。

+0

謝謝,這澄清了一些事情。 – Jeremy