我正在使用MySql表來存儲當前登錄用戶的會話記錄。一旦用戶註銷,我會更新同一記錄中的幾個字段並標記(撤消)它不應該再次使用。因此,對於每個LogIn都會創建一條新記錄。這符合我的目的,但事實證明,桌子將變得巨大。在用戶註銷後,會話表是否應該從記錄中清除?
存儲會話的標準方法是什麼?應該將被撤銷的那些存儲在單獨的表中,還是應該將它們刪除或保留在同一個表中?
我認爲將數據留在同一個會話表中。查詢特定記錄時,我使用兩個字段進行查詢:(idPeople(不唯一)和已撤銷(0或1)),例如SELECT * FROM session WHERE idPeople = "someValue" AND revoked = 0
。然後在用戶登錄或登錄時根據需要更新記錄。巨大的桌子會影響這個嗎?或者MySql會處理這個?還有什麼是我無法看到的其他後果?
是的,問題是將有多個記錄與相同的字段,即idPeople(這不能是唯一的),我知道這一點,我可以查詢表。 –
這就是爲什麼我建議在表結構中添加一個字段,例如會話初始化時間戳。您可以設置一個結合時間戳和用戶的唯一索引,並獲取用戶的記錄過濾和最新的時間戳記(因此,搜索將使用索引而不是實際表格進行)。 – FDavidov
是的,理解,謝謝! –