2009-03-28 48 views
10

Trên trang web có chia sẻ công bằng nội dung do người dùng tạo chẳng hạn như chuỗi diễn đàn, nhận xét trên blog, bài viết được gửi, nhắn tin riêng tư và công khai, hồ sơ người dùng, v.v. thực hành tốt nhất là điều gì cần làm với dữ liệu do người dùng tạo nếu người dùng chấm dứt tài khoản của họ?Các phương pháp hay nhất để xóa dữ liệu khi chấm dứt tài khoản người dùng

Tôi không yêu cầu tư vấn pháp lý và tôi không coi đây là câu hỏi pháp lý nhiều như câu hỏi về sự cân bằng giữa người dùng, người dùng khác và trang web vì điều khoản sử dụng có thể được rút ra sau sự cân bằng đó xảy ra. Một số tình huống sau đây cần được xem xét khi người dùng xóa tài khoản của họ:

  • Private tin nhắn giữa người dùng - đường mòn chuyện có nên bị xóa? Nếu vậy, làm cách nào để bạn có tài khoản đối với các trường hợp quấy rối khi cần có bằng chứng pháp lý ?
  • Câu hỏi hoặc câu trả lời của diễn đàn - Nếu người dùng đã đặt câu hỏi, nên xóa toàn bộ chuỗi ? Nếu họ trả lời câu hỏi, bạn có nên xóa câu trả lời không?

Tôi đang đặt câu hỏi này khi triển khai tài khoản người dùng vào CMS. Tôi biết rằng gần đây Facebook đã chạy vào trouble với những thay đổi trong điều khoản sử dụng của họ, nhưng làm thế nào để bạn cân bằng mong muốn xóa với nhu cầu và đầu tư của những người dùng khác cũng tham gia?

Trả lời

18

Nói chung với cơ sở dữ liệu, bạn hiếm khi xóa bất kỳ thứ gì. Bạn có thể đánh dấu nó là đã xóa nhưng nói chung bạn giữ nó trong cơ sở dữ liệu của bạn ít nhất là trong một thời gian.

Có nhiều lý do cho việc này. Một số trong số đó là hợp pháp. Bạn có thể có yêu cầu ot giữ dữ liệu trong một khoảng thời gian nhất định. Một số trong số đó là kỹ thuật. Đôi khi nó chỉ là một biện pháp bảo vệ. Bạn có thể cần khôi phục thông tin. Người dùng có thể yêu cầu tài khoản của họ được mở lại hoặc có thể đã bị khóa do spam nhưng đó là do tài khoản đã bị xâm phạm và hiện đã được khôi phục.

Dữ liệu cũ có thể bị xóa hoặc lưu trữ nhưng có thể mất hàng tháng hoặc thậm chí hàng năm.

Cá nhân tôi chỉ cung cấp cho dữ liệu có liên quan một cột trạng thái (ví dụ: 1 = hoạt động, 0 = đã xóa) và sau đó chỉ thay đổi trạng thái thay vì xóa nó 99% thời gian.

Tính toàn vẹn của dữ liệu là một vấn đề khác ở đây. Tôi sẽ cho bạn một ví dụ.

Giả sử bạn có hai thực thể:

User: id, nick, name, email 
Message: id, sender_id, receiver_id, subject, body 

Bạn muốn xóa một tài khoản cụ thể. Bạn làm gì về các tin nhắn họ đã gửi và nhận? Những tin nhắn đó sẽ xuất hiện trong hộp thư đến của người khác hoặc gửi các mục để bạn không thể xóa chúng. Bạn có đặt trường có liên quan trong Thư thành NULL không? Điều đó không có ý nghĩa gì nhiều bởi vì thông điệp đó đến từ (hoặc đến) ai đó, ngay cả khi họ không còn hoạt động nữa.

Bạn nên chỉ đánh dấu người dùng đó là đã xóa và giữ chúng xung quanh. Nó làm cho tình huống này và tương tự dễ dàng hơn nhiều để giải quyết.

Bạn cũng đề cập đến các chuỗi diễn đàn, v.v. Bạn không thể xóa chúng (trừ khi có những lý do khác để làm như vậy như spam hoặc lạm dụng) bởi vì chúng là nội dung liên quan đến nội dung khác (ví dụ: thông điệp diễn đàn đã được trả lời).

Dữ liệu duy nhất bạn có thể xóa an toàn và hợp lý là dữ liệu con. Đây thực sự là sự khác biệt giữa tổng hợp và bố cục. Mối quan hệ Người dùng và thông điệp ở trên là tổng hợp. Một ví dụ về thành phần là Nhà và Phòng. Bạn xóa một ngôi nhà và tất cả các phòng đi đến. Phòng không thể tồn tại mà không có Nhà. Đây là thành phần hoặc, trong cụm từ quan hệ thực thể, mối quan hệ cha-con.

Nhưng bạn sẽ tìm thấy nhiều trường hợp tổng hợp hơn so với sáng tác (theo kinh nghiệm của tôi) để câu hỏi trở thành: bạn làm gì với dữ liệu đó? Nó thực sự khó khăn để xóa tất cả dấu vết của một ai đó mà không xóa những thứ bạn không nên. Chỉ cần đánh dấu chúng là đã xóa, bị khóa hoặc không hoạt động và xử lý theo cách đó.

+0

Điều gì về mặt quyền truy cập công khai vào dữ liệu đó, đặc biệt là dữ liệu liên quan đến những người khác, chẳng hạn như chuỗi diễn đàn? Nó có nên được xem công khai không? – VirtuosiMedia

1

Bạn chỉ có thể đánh dấu người dùng là đã xóa và sau đó bất cứ khi nào bạn hiển thị bất kỳ nội dung nào liên quan đến người dùng đó thì bạn hiển thị tên là "Người dùng cũ" hoặc một cái gì đó.

Điều này bảo vệ danh tính người dùng đã thoát mà không làm hỏng nội dung của bạn.

1

Bạn nên giữ tất cả nội dung và chỉ đánh dấu người dùng là đã bị xóa để người dùng khác không thể xem tiểu sử, tên người dùng của họ, v.v. Người dùng khác có thể đăng ký bằng cùng tên (vì nó nên trở nên miễn phí).

1

Tôi đã suy nghĩ về những vấn đề tương tự này trong một thời gian dài. Thành thật mà nói, bạn không nên xóa một chủ đề bắt đầu bởi một người dùng sẽ bị xóa nếu những người khác đã đóng góp thời gian và nỗ lực của họ cho nó. Tôi nhớ trên một diễn đàn có một quy tắc bạn không thể xóa chủ đề của bạn sau 11 giờ sau khi nó được xuất bản. Tôi đoán ý tưởng đằng sau là bạn không thể lấy lại lời của bạn sau khi bạn đã phát âm nó.

Vì vậy, nên khóa tài khoản tốt hơn nhưng không bỏ qua bất kỳ thứ gì liên quan đến người dùng.

Đặc biệt, để họ có thể xóa tài khoản của mình, sau đó đăng ký dưới cùng một tên và bắt đầu lại từ đầu.

Các vấn đề liên quan