sql >> データベース >  >> RDS >> Mysql

diffをデータベースに保存する最もコンパクトな方法は何ですか?

    各レコードの差分を保存するよりも、各レコード全体を保存する方がはるかに簡単です。次に、2つのリビジョンの差分が必要な場合は、PECLText_Diff ライブラリ

    レコードのすべてのバージョンを1つのテーブルに保存し、MAX(revision)を使用して最新のレコードを取得するのが好きです。 、「現在の」ブール属性、または同様のもの。非正規化して、最新ではないリビジョンを保持するミラーテーブルを使用することを好む人もいます。

    代わりにdiffを保存すると、スキーマとアルゴリズムがはるかに複雑になります。次に、少なくとも1つの「フル」リビジョンと複数の「diff」バージョンを保存し、フルバージョンが必要な場合はいつでもdiffのセットからフルバージョンを再構築する必要があります。 (これはSVNが物事を保存する方法です。Gitは差分ではなく、各リビジョンの完全なコピーを保存します。)

    プログラマーの時間は高くつきますが、ディスク容量は通常安価です。各リビジョンを完全に保存することが本当に問題になるかどうかを検討してください。



    1. 同じクエリを使用する複数のPHPWHILEループ

    2. MariaDBで重複する行を選択する4つの方法

    3. データベースにテーブルが見つかりません

    4. PostgreSQLCASE...複数の条件で終了