ユーザーの投稿に加えられた編集の履歴を含むシステムを設計しています。ユーザーによる投稿の約1/3に、何らかの編集が含まれていると思います。それらのほとんどには、ほんの一握りのバージョンしかありません。2桁に達することは非常にまれです。
データベースでこのデータを表すのに最適なスキーマは何ですか?どのテーブルが必要で、何を保存する必要がありますか?
ユーザーの投稿に加えられた編集の履歴を含むシステムを設計しています。ユーザーによる投稿の約1/3に、何らかの編集が含まれていると思います。それらのほとんどには、ほんの一握りのバージョンしかありません。2桁に達することは非常にまれです。
データベースでこのデータを表すのに最適なスキーマは何ですか?どのテーブルが必要で、何を保存する必要がありますか?
私が想定しているスキーマは、PostsテーブルとHistoryテーブルを持つことです。誰かが最初に最初の投稿を行うとき、それは投稿テーブルにのみ入ります。その後、自分または別のユーザーが投稿を編集すると、履歴テーブルに2つのエントリが作成されます。1つは元のバージョン用で、もう1つは編集済みバージョン用です。同様に、投稿テーブルは最新の情報で更新されます。追加の編集により、Historyテーブルへの単一の新しいエントリとPostsテーブルの更新が生成されます。
私が見ている問題の1つは、現在のバージョンが最終的に両方のテーブルに複製されることですが、ユーザーを編集に簡単に関連付けることができるので、これは価値があると思います。