Thùng rác và khôi phục
Xoá một bản ghi là chuyển nó vào thùng rác, không phải xoá vĩnh viễn. Trang Thùng rác liệt kê từng lần xoá và cho khôi phục trọn vẹn những gì lần xoá đó đã lấy đi.
Xoá một bản ghi không xoá nó khỏi hệ thống ngay. Bản ghi được chuyển vào thùng rác của Ứng dụng, ở đó nó vẫn giữ nguyên nội dung, tệp đính kèm và các liên kết — cho tới khi hết thời hạn lưu giữ, lúc đó một tác vụ nền mới dọn nó đi thật.
Có hai đường quay lại: nút Hoàn tác trên thông báo ngay sau khi xoá, và trang Thùng rác.
Hoàn tác ngay sau khi xoá
Xoá xong, một thông báo hiện ở góc trên bên phải kèm nút Hoàn tác. Thông báo này ở lại 30 giây — đủ để kịp đổi ý, và không lâu tới mức xoá vài bản ghi liền nhau để lại một chồng thông báo.
Nếu lần xoá đó kéo theo bản ghi khác (xem Khi bản ghi đích bị xoá), thông báo nói rõ nó đã chạm tới đâu — "Đã chuyển 'Acme' và 3 bản ghi liên quan vào thùng rác" — chứ không chỉ nói "đã xoá".
Bỏ lỡ 30 giây đó cũng không sao. Bản ghi vẫn nằm trong thùng rác.
Trang Thùng rác
Mở từ nút Thùng rác ở đầu trang danh sách bản ghi của Ứng dụng. Nút chỉ hiện với người có quyền Khôi phục bản ghi đã xoá (entity.records.restore).
Mỗi dòng là một LẦN XOÁ, không phải một bản ghi
Đây là điểm dễ hiểu nhầm nhất và là chủ ý. Khôi phục là khôi phục cả lần xoá: một lần xoá kéo theo ba bản ghi thì khôi phục sẽ mang lại cả bốn, cùng lúc. Một dòng chỉ hiện một bản ghi rồi lặng lẽ mang thêm ba bản ghi khác về sẽ là nói dối.
Nên mỗi dòng được đặt tên theo bản ghi của Ứng dụng bạn đang xem — cái bạn nhận ra — và ghi rõ nó còn với tới đâu:
| Cột | Nội dung |
|---|---|
| Bản ghi | Tên bản ghi, kèm dòng "và N bản ghi khác" khi lần xoá đó chạm tới nhiều hơn một |
| Đã xoá | Thời điểm xoá |
| Bởi | Người đã xoá. Hệ thống nghĩa là một quy trình chứ không phải một người |
Chọn Khôi phục sẽ hỏi lại trước khi chạy — vì nó có thể mang về cả những bản ghi bạn không nhìn thấy trên dòng đó.
Nhãn (bị hạn chế) nghĩa là bạn không được đọc giá trị hiển thị của bản ghi đó, giống hệt cách một chip tham chiếu hiển thị khi bị che.
Bạn chỉ thấy những gì bạn được khôi phục
Trang này dùng đúng quyền của thao tác khôi phục, không phải quyền duyệt:
- Quyền Khôi phục bản ghi đã xoá (
entity.records.restore) ở cấp vai trò. - Năng lực Xóa trên Ứng dụng.
- Phạm vi hàng Xóa cho từng bản ghi trong thùng rác, xét theo phạm vi mà bản ghi mang lúc bị xoá.
Một lần xoá nằm ngoài phạm vi của bạn sẽ không xuất hiện trên danh sách — không bị làm mờ, không được đếm. Danh sách này không phải nơi để dò xem tổ chức có những bản ghi nào.
Quyền này không gán sẵn cho vai trò nào
entity.records.restore phải được cấp qua một lần sửa vai trò có chủ đích. Có quyền Xóa nghĩa là bạn được phép bỏ một bản ghi đi, không có nghĩa bạn được phép dựng nó dậy — khôi phục là một lượt ghi vào miền khóa định danh và đồ thị tham chiếu đã thay đổi kể từ lúc xoá. Xem Vai trò và quyền.
Khôi phục có thể thất bại, và vì sao
Khôi phục dựng lại bản ghi với đúng mã định danh cũ, nên mọi thứ đã ghi nhận bản ghi đó theo mã vẫn trỏ đúng. Nhưng dữ liệu xung quanh đã đi tiếp trong lúc bản ghi nằm trong thùng rác:
- Khóa định danh đã bị chiếm — trong lúc bản ghi nằm trong thùng rác, miền khóa được giải phóng, nên một bản ghi mới hoàn toàn có thể đã lấy đúng khóa đó. Khôi phục khi ấy bị từ chối.
- Biên nhận đã dùng rồi — mỗi lần xoá mang một biên nhận riêng, và khôi phục là "tiêu" biên nhận ấy. Xoá → khôi phục → sửa → xoá lại sinh ra một biên nhận mới; nút Hoàn tác còn sót trên màn hình từ lần xoá đầu sẽ không mang lần xoá thứ hai về (nếu không, bản sửa ở giữa sẽ bị mất mà không ai hay).
- Đã quá thời hạn lưu giữ — tác vụ nền đã dọn thật.
Cả ba đều nhận một câu trả lời giống nhau, có chủ ý: một biên nhận không được trở thành công cụ dò xem bản ghi nào còn tồn tại.
Không có nút "dọn sạch thùng rác"
Không phải thiếu sót. Dọn sạch là thao tác không có đường lùi, và một nút cho phép bỏ qua thời hạn lưu giữ là một cái bẫy. Tác vụ nền theo thời hạn là đường ra duy nhất.
Xem thêm Chi tiết bản ghi về nơi nút Xóa nằm, và Trường dữ liệu về việc một lần xoá có thể kéo theo bản ghi khác như thế nào.