Hmm, tôi cũng đang nghĩ về điều này.
- Có một bảng cho mỗi bảng để giữ lại các bản sửa đổi sẽ không phải là vấn đề quá lớn đối với cá nhân tôi, nhưng này.
- Tên người dùng có thể được giữ bằng các biến do người dùng xác định, tôi tin rằng (sau khi bắt đầu phiên, vấn đề như
SET @user='someone'
và sử dụng nó. - Miễn là có các trình kích hoạt sau CHÈN, CẬP NHẬT và XÓA, việc nhận các giá trị trước đó / tiếp theo là một truy vấn đơn giản, tôi sẽ chỉ lưu trữ các giá trị CŨ.
Tóm lại, đối với một bảng có cột (a, b, c), tôi sẽ tạo một bảng với các cột (user_id, modtime, a, b, c).
Hạn chế chính:
- cập nhật hàng loạt chậm (vì vậy hãy chọn các bảng của bạn để giữ các bản sửa đổi một cách cẩn thận)
- deluxe dữ liệu trùng lặp, bạn / tôi sẽ phải có đủ dung lượng lưu trữ
- dữ liệu 'liên quan' không kích hoạt bản sửa đổi (tức là:thay đổi
group_members
bảng không thực sự thay đổigroups
bảng, trong khi bạn có thể muốn giữ nó như một thời điểm chogroups
thay vào đó đi sâu quagroup_members
thay đổi.
Nói chung, nó có vẻ là một việc tốt đối với tôi, nhưng vì tôi hiếm khi thấy nó trong thực tế ở đó phải là những lý do thuyết phục khiến nó tệ, vì vậy tôi sẽ chờ đợi những câu trả lời đó.