0

MySQL データベースを使用する PHP アプリケーションがあります。ユーザーの詳細を格納する profile というテーブルがあります。現在、彼がタスクを実行するときに、そのプロファイルのスナップショットを保持する必要があります。つまり、ユーザーに関連するテーブル行全体を複製する必要があります。

私はそれを行う2つの方法を見つけました。

1) 表に別の列を追加して、複製されたかどうかを示します。その後、彼の元のプロファイルを分離できます。(オリジナル/クローン)。プロファイル データは 1 つのテーブルに保持されます。

他の方法は..

2) プロファイルに似た (同じフィールドを持つ) 別のテーブルを追加し、複製されたプロファイルをそこに保存します。プロファイル データは 2 つのテーブルに保持されます。

パフォーマンスと使いやすさの点で最も効率的なのはどれですか?

4

1 に答える 1

0

column/fieldクローンかオリジナルかを区別するための aだけを含む 1 つのテーブルにある場合、処理するレコードの数は常に 2 倍になります。一方、別のテーブルにある場合は、一度に両方が必要でない限り、毎回心配するテーブルは 1 つだけです。もう1つのことは、別のテーブルがある場合、メインテーブルの仮想バックアップがあることです. したがって、いずれにせよ、問題が発生した場合は、頼りになる何かがあり、その逆も同様です。さらに、別のテーブルである場合、レコードを混同する危険にさらされることはありません。言い換えれば、最初のアプローチよりも2番目のアプローチを好むでしょう。

于 2013-10-24T10:16:39.073 に答える