I have a database where information about the documents and their associated packages are kept. Each document can have several packages, and each package has its details and product list. When documents are certified, they can no longer be edited, but users are allowed to edit package details before attaching them to another document. However, in certified documents, old data must be retained. The problem is that when users update the details of a package to create a new document, in the front views, the details of the package are updated even in the certified documents because I only have A record for the details of the package in my database. I'm thinking of keeping several records for each update, so as not to lose the data used before the update in already certified documents, but it would be too much work. I want to know how to efficiently design a database to escape this kind of problem.
This is my current design scheme