This would obviously be nice to have when making changes to metadata.
In particular, there are two choices:
- Add a history table to the database, which would need to be updated, and should probably roll over. This runs into a problem where large edits will consume a large amount of disk space, which is undesirable, and CTRL+Z could lead to unexpected outcomes when reopening the app.
- Store diffs directly in the application - this means that large edits would consume large amounts of memory, but would automatically be deleted when the app is closed.
In terms of implementation, we could likely store this as a vector of BookID with the original value (ColumnIdentifier, String) or, if a sufficiently simple crate exists, a diff (ColumnIdentifier, Diff), when can then be applied as needed.
This would increase the database API size, and we would need to support this on deletion, insertion, and simply editing values (also cut/paste)
This would obviously be nice to have when making changes to metadata.
In particular, there are two choices:
In terms of implementation, we could likely store this as a vector of
BookIDwith the original value(ColumnIdentifier, String)or, if a sufficiently simple crate exists, a diff(ColumnIdentifier, Diff), when can then be applied as needed.This would increase the database API size, and we would need to support this on deletion, insertion, and simply editing values (also cut/paste)