There are several Platform supported modules. You can check the documentation and see which one suits your case
There are several ways of looking at it. However, the main aspect would be to have an entity that holds the information that does not change per version and another entity that holds the specific details.
Could be something link this.
If you want to create a new version, you will have to create a copy of the Active record and on saving the new version, make sure that one is active and the previous one the boolean is set to false. Depending on your exact requirements, it could also mean that you will have to copy additional information.
An alternative solution could be a domain model like this
Where in stead of using a boolean to define the active version, you use an additional association.
Hope this helps you in the right direction.
Thanks, this is helpful.
I also want to get product, contact and company data in quotation and revision which in another table. How to handle association or copy them.
Is there any built-in module at marketplace to track change history.