I have made few projects (CMS and EC system) that required to have some data versioned.
Usually I come with that kind of schema
+--------------+ +
You can simplify the query by using a view over your table which filters to the latest version. This only makes the queries look nicer you still have the performance overhead.