Điều đó không ghi nhật ký các bản cập nhật SQL thực tế. Nó đang ghi lại các cập nhật của dữ liệu. Nó sẽ có hiệu lực được lưu trữ mỗi sửa đổi của trang, và chỉ cung cấp một phiên bản mới nhất theo mặc định. Mã SQL đã được sử dụng cho nó không được lưu trữ.
Vì vậy, bạn sẽ phải thực hiện một phương pháp tương tự. Mỗi lần dữ liệu thay đổi, bạn sẽ cần phải tìm ra cách dữ liệu đã thay đổi và lưu trữ dữ liệu 'vá' này. Bạn có thể sẽ lưu trữ tốt nhất phiên bản mới nhất, thay vì sau đó phải làm việc thông qua tất cả các bản vá lỗi để có được nó. Điều này có nghĩa là bạn sẽ có thể nhìn thấy một cái gì đó như
! created file
* added data to cell D4 'product descript' D5 'set of pens' E5 '£5.99'
* added data to cell D6 'toaster' E5 '£10'
& changed data in cell D4 'Product Description'
Mỗi thay đổi này sẽ cần được lưu trữ bằng dấu thời gian hoặc khi chúng được thực hiện. Bạn cũng sẽ cần phải làm việc ra scheeme của riêng bạn để lưu trữ các thay đổi dữ liệu.
Một giải pháp đơn giản hơn, là sử dụng công cụ wiki, cung cấp tất cả các chức năng bạn muốn, nếu bạn sẵn sàng làm việc trong một trang web. Bạn có thể cần phải dành một chút thời gian để làm cho nó hoạt động tốt hơn cho nhu cầu của bạn, cho phép mọi người chỉnh sửa nó từ một cái nhìn hoàn chỉnh hơn, thay vì sau đó là một wiki thô.
tại sao không đi như thế này: 'bảng chính' chỉ chứa' id' và 'version_id'' phiên bản bảng chứa tất cả dữ liệu? – Shaheer
Cảm ơn @Shaheer Tôi sẽ thử cái này. – Eric
@Shaheer vì hầu hết các truy vấn đều chống lại dữ liệu hiện tại, vì vậy việc tách lịch sử thành một bảng riêng biệt đảm bảo rằng các truy vấn đó không nhận được hình phạt hiệu suất khi bảng trở thành * n * lần lớn. Làm thế nào lớn * n * sẽ phụ thuộc vào mức độ thường xuyên các bản ghi được cập nhật. –