30/09/2018, 17:52

Hỏi ý tưởng về xóa user trong lập trình web

Mình muốn thực hiện tự động xóa user sau 30 ngày nếu user không đăng nhập ( bằng cách tự động thực hiện một lệnh xóa sau một khoảng thời gian nhất định). Mong mọi người cho ý tưởng nên làm như thế nào! Thanks all

Võ Hoài Nam viết 19:55 ngày 30/09/2018

Mình nghĩ thế này… Trong bảng lưu user có thêm một cột là “Lần cuối đăng nhập”… Cứ mỗi ngày, vào một thời điểm nhất định sẽ kích hoạt một đoạn lệnh truy vấn danh sách các user quá 30 ngày chưa đăng nhập… Sau khi tìm được rồi thì xóa

Ý tưởng là thế, nhưng mà mình nghĩ bạn nên viết một Store Procedure dạng thế này để xử lý…

while (!user.hasExpired()) {
    user.destroy();
}

Không biết bên Windows có hỗ trợ viết một services cho chạy background, setInterval 24 tiếng… để kích hoạt vụ đó

Qk Tran viết 20:03 ngày 30/09/2018

Không biết còn cách nào khác không nữa, nếu vòng lặp lên 70 triệu lần chỉ để xóa vài trăm record không biết sức chịu của server chạy sql sẽ như thế nào nữa, đồ của công ty không dám phá. Hj, Có cách nào xử lý riêng trên từng user trong các khoảng thời gian khác nhau không??? Mong giúp đỡ

Itachi Citus viết 19:58 ngày 30/09/2018

Thường thì tài khoản người ta sẽ không xóa, mà người ta chỉ đánh dấu là đã xóa (Thêm một trường ở cuối lưu trạng thái) - kể cả khi chính người dùng yêu cầu xóa để tránh mạo danh tài khoản, tạo username, email trùng với tài khoản cũ đã bị xóa. Nếu đánh dấu thì đơn giản lắm, khi có yêu cầu truy xuất thông tin một tài khoản nào đó chỉ cần kiểm tra trạng thái là được hoặc kiểm tra thời gian inactive như ở trường hợp cụ thể này.

Khiem Nguyen viết 20:00 ngày 30/09/2018

cách xử lý hay nhất là viết store procedure để xóa user, việc này server sẽ tự động xử lý

Khiem Nguyen viết 20:01 ngày 30/09/2018

ko cần phải viết service. bạn chỉ cần dùng sql server để viết sp xóa user sau một thời gian xác định, nó cũng tương tự như cơ chế backup database sau một thời gian đc chỉ định

Võ Hoài Nam viết 19:58 ngày 30/09/2018

mình quên mất SQL Server nó hỗ trợ cái vụ này… Cảm ơn bạn đã nhắc

Qk Tran viết 20:01 ngày 30/09/2018

lệnh storepro đó sẽ như thế nào vậy bạn? Làm sao đặt lịch xóa trên storepro được, lệnh store đó được đặt khi người dùng tạo tài khoản hay khi nào mới gọi store đó. Mình chưa hiểu lắm

.vn viết 19:57 ngày 30/09/2018

theo mình bạn nên bỏ ý định xóa user vì một thành viên đã đăng ký thì họ có quyền truy cập,bạn làm vậy khó mà lấy đưucọ lòng khách hàng, h cạnh tranh nhau dữ lắm,

vũ xuân quân viết 19:55 ngày 30/09/2018

giống như bạn @khiemnvd thì bạn nên dùng store procedure làm cái này cho khỏe.
Còn đặt lịch thì bạn có thể coi link này. Mình mới tìm trên mạng

how to schedule for store procedure

Qk Tran viết 19:53 ngày 30/09/2018

Cảm ơn các bạn nhiều

Bài liên quan
0