1

與往常一樣,如果此問題已在某處進行討論,我表示歉意。刪除後如何處理用戶資產

我很想知道每個人在刪除用戶時如何處理相關表格和資產。我目前正在開展的項目主要是項目管理/問題跟蹤系統。

當用戶被刪除時,他們的問題,項目,文件等會發生什麼? 把我的頭頂部的幾個方案是要麼:

  • 刪除所有他們的問題,文件,項目,等...
  • 重新設置父級的一切的唯一(或許多之一)admin用戶
  • 鎖定用戶帳戶,但保留其所有資產(但如果服務器存儲成爲問題,我可能需要在某些時候真正刪除它們)
  • 將一個不存在的user_id(0)分配給相關表(這看起來像它嘗試連接表格時會出現問題

我錯過了其他任何可能的考慮事項?第三種解決方案現在聽起來對我來說是最好的。那些從事大型項目的人,你是如何處理刪除用戶的?在旁註中,我正在使用php(yii)和mysql開發項目。

+2

我可以刪除(如果存儲是一個問題),或者只保留賬號,如果存儲是不是一個問題鎖定(將其狀態設置爲已刪除添加刪除日期,所以當你真正需要做一次清理你清除超過x天/月並且已經刪除狀態的賬戶)。 – ahmad

回答

1

實際上刪除一個用戶和相關對象應該是你做的最後一件事。即使是被刪除的用戶也是歷史和有用的數據。如果真的變得很沉重,你可以隨時把它歸檔。

按照Lukas的建議,取消激活用戶。所有請求用戶相關對象的查詢都應檢查「活動」標誌以包含/排除用戶。當你有這個複雜的連接查詢來檢索數據時,它會節省很多努力並用該標誌進行處理。

對於「實際」資產,如文件,這些可佔用大量空間,但如果它們與非活動用戶相關,則不應刪除這些空間。如有必要,再次存檔。它可能需要爲指向該資產的條目添加一個「存檔」標誌,以便在文件不存在時不打開文件。

2

您應該刪除所有未被其他用戶使用的數據。

由於其他用戶受到影響的情況,例如問題或任務,您應該停用用戶配置文件。這樣做的最好方法是向數據庫添加一個「活動」列,如果用戶被刪除,則將其設置爲0。在您的系統中,您可以解析此列並顯示「刪除的用戶」之類的內容。

如果沒有其他人被分配到一個任務,這將是最好的,如果你讓他們取消分配,並使其他用戶可以選擇任務或分配給任務的池。

同樣的方式,我會用像項目這樣的其他數據。

關於文件,刪除它們是有意義的,如果它們不再需要的話。

一定要記住,最好在服務器上有更多的數據而不是丟失重要的信息!