4
我的應用程序讓用戶互相發送文件。普通用戶可以編輯他們的聯繫人,更改密碼等。此外,管理員用戶可以添加/刪除用戶並查看所發生事件的日誌。我的問題是如何將這個日誌存儲在MySQL數據庫中?如何存儲登錄數據庫?
我認爲存儲日誌是這樣的:
log_id time user_id action_type description
------ ---- ------- ---------------- ----------------------------------------
1 .... 4 User added Added new user: alex
2 .... 1 Contact added Added contact Paul to group Family
3 .... 1 User removed Removed user: gabrielle
4 .... 3 Files sent Sent files 3,5,7,14 to contacts 2,4,8
5 .... 8 Group added Added new group: Family
6 .... 8 Password changed
7 .... 8 First Name changed Changed First Name from Michael to Misha
什麼類型將是最好的action_type
?由於未來可能會增加新的action_type
,我認爲ENUM
不會是一個好選擇。所以我想讓它變成VARCHAR(..)
,就像description
一樣。
這是否合理?
我很樂意聽到任何意見/建議。
忌諱:打電話給你的主鍵'id',而不是'log_id'。避免醜陋的重複:'logs.log_id' – meagar 2010-10-19 04:58:34
@meagar - 使用log_id沒有任何問題,並且它是推薦的命名方案。它確保列名在進行連接時不會發生衝突,而無需輸入長長的別名列表。 – mellowsoon 2010-10-19 05:09:52
@mellowsoon這就是爲什麼我說「pet peeve」而不是「你做錯了」。 – meagar 2010-10-19 13:30:04