2010-01-03 66 views
4

我得到了一個論壇,我允許用戶刪除他們的帳戶。刪除用戶最佳做法?

我想用戶線程仍然在那裏和用戶名顯示,但我不知道一件事。

如果用戶被刪除(基本上我只是NULL表中的用戶名和密碼,但我離開一切完好無損),而另一個用戶正在註冊相同的用戶名,那麼人們會相信具有相同用戶名的新用戶創建了前一個用戶創建的所有線程。

或者是不是允許新用戶挑選那些已被刪除的用戶名?

有關刪除用戶的最佳做法是什麼?

回答

10

爲您的用戶表添加一個額外的列,名爲「已刪除」或類似。默認爲零(false)。當用戶被「刪除」時,將此字段設置爲1(真)。你會不會跨越具有重複的用戶名,用戶的任何問題,運行,作爲原始將仍然存在並鏈接到您的現有員額等

+0

但我應該NULL用戶名和密碼字段吧?那麼他們無法登錄 – ajsie 2010-01-03 13:36:01

+3

不,在您的登錄序列中,您應該將用戶名/密碼組合與普通數據庫進行比較。然後,如果此用戶的「已刪除」列爲零/ false,則用戶能夠正常登錄。如果它是1/true,那麼你拒絕登錄。 – richsage 2010-01-03 13:37:23

+3

如果您將用戶名字段置空,那麼您將在論壇主題中顯示哪些內容需要提及此用戶? – naivists 2010-01-03 13:37:45

1

添加DeletedDate列。如果此列爲NULL,則用戶帳戶不會被刪除。

這樣你就不會刪除任何數據,並且如果你願意,用戶名等完好無損,你可以稍後取消刪除。

1

你應該不會真正刪除用戶通過這種方式,只設置的「刪除」標誌他們的數據庫記錄。 如果設置了此標誌,則不允許用戶登錄。另外,顯示「用戶已刪除」的用戶頁面。 如果你真的刪除記錄,你必須決定,如何處理

  • 論壇帖子的用戶已經創作由用戶作出
  • 回覆
  • 回覆,其中有人提到某事被說刪除用戶
  • 該用戶

發送到/私人消息,因此,這實際上改變了談話人都有過。

3

我會在表中保留一個deleted字段作爲布爾值。當用戶離開時將其設置爲true。保持用戶名的獨特性。

0

的職位應通過一個ID鏈接到用戶沒有用戶名所以,除非你重用ID,你應該沒有,那麼你將不會有這個問題。

1

如果是很重要的,讓其他人使用舊的用戶名,你可以改變用戶的名字進入如。已刪除的用戶X - 這種方式仍然會在用戶的帖子之間建立聯繫(這在某些情況下可能很重要)。

1

如果您保留帖子和用戶名,您不希望人們再次註冊相同的用戶名。這會造成很多混亂。通常,您還可以將用戶名作爲用戶表的唯一鍵。

我會建議讓用戶刪除他們的帳戶完全如果沒有相關的帖子或其他活動。如果有關聯的帖子,則該帳戶被禁用,並且標記爲「已刪除用戶」的帖子。

然後將其設置爲完全清除帳戶和相關帖子的管理操作。這可以添加到您的常規維護工具。

1

您甚至可以在用戶表中添加一個額外的列,名爲「uid」,併爲每個註冊的新用戶生成新的uid。