ログテーブル/履歴テーブルの持ち方はだいたい2パターンある

http://qiita.com/ak-ymst/items/2e8e92f212c807bb09a1
例:ブログの記事に履歴を持たせたいという要件

1. 記事テーブルに、履歴No列を追加する。

記事テーブル1つだけで管理する。
記事テーブルには履歴No(+最新フラグ)を持つ。(単純な連番、0が常に最新、0が常に最新で履歴Noは降順管理(古いものほど番号が大きい)などいろいろな管理方法が考えられる)
最新取得するために条件を追加する必要がある。
集計や更新の作業をするとき、同じテーブル内に最新と履歴があることを考慮する必要がある。

2. 記事テーブルとは別に, だいたい同じ構造の履歴テーブルを持つ。

記事テーブルに加えて、記事履歴テーブルを持つ。
記事履歴テーブルには記事テーブルの内容+履歴No(+最新フラグ)を持つ。
(最新履歴フラグは、最新だけ一覧取得したいときに役に立つものなのでこのパターンでは不要な場合も多い)
アプリ側は履歴を意識せずに記事テーブルを読める。
更新時には履歴追加が必要。
記事テーブル内容変更時に、記事履歴テーブル内容も連動して変更する必要がある。