OK, this can be implemented on the database to also allow you to keep track of changes and updates.
Instead of moving data from one table to the other
On the main table for your Article, keep the article information, on another table keep the Status for the article. When an article gets updated, a new record is entered on the Status table with a datetime field that takes a default value of Now(), and another for CurrentStatus, Default Value, "Updated" or something that makes sense to you.
Once the record gets entered as updated, you know that the article needs to be locked, to approve allow aproving authority to enter a value of "Approved" as a new record, which will also have a default value of Now() but a CurrentStatus of Approved, or something that makes sense to you.
to pull the current status, do a query to select Max of that table, and group it by Article.
Hope it helps, if you need more help, give table structure.