Schemas design for article versioning


I want to have a versioning feature for articles in my blog app.

I want a feature where author would write the article, but he can not publish it until someone reviews the article for proofreading. In that case, author’s initial article would be version_1, and proofread article would be version_2. Then author can update and change the article again, so that update needs to be proofread and so on…

I though of 2 ways:

  1. Have only one Articles collection where each version would be a new document in a collection. All version would have a property that reference the original article document.

  2. Have one Articles collection for basic article data, and Versions collection for all the versions of the article.

Is there some known good practice for modeling this feature?