があったとき、ちょうど私が正しくあなたの質問を解釈していることを確認しますする: 現在、フィールドusername, email, firstname, middlename, familyname, dob, password, country
を持つテーブルを持っていて、FirstNameおよびFamilyNameで列の履歴を保存したいです。あれは正しいですか?
もしそうなら、あなたのテーブル(valid_from、valid_until)に時間有効性の列を追加し、現在のレコードの "valid_from"をnow()に設定し、valid_untilをnullに設定する。また、このユーザーの最後の行のvalid_until列をnow()に設定します。 現在のレコードは、valid_untilがnullのレコードです。
このデザインは自己説明的ですが、最初と姓だけでなく、テーブル内のすべてのフィールドの変更を保存する方が良いでしょう。また、パスワード履歴を保存することもできます。例えば
id
username
email
firstname
middlename
familyname
dob
password
country
valid_from
valid_until
:
表のようなものだろう
id username email firstname familyname ... valid_from valid_until
-----------------------------------------------------------------------------------------------------
1 bob [email protected] Bob Smith 1/Jan/2011 null
ボブは彼の家族の名前を変更すると、これは
id username email firstname familyname ... valid_from valid_until
-----------------------------------------------------------------------------------------------------
1 bob [email protected] Bob Smith 1/Jan/2011 1/Aug/2011
1 bob [email protected] Bob Brown 1/Aug/2011 null
私はただの変更があったことを望むだけではありません。私も以前の名前でユーザーを見ることができるようにしたい。 –
何が問題なのですか?あなたのすべての変更を与えるためにユーザーIDのためのテーブルの単純な選択 – Nightw0rk
ああ、大丈夫。次に、以前のユーザー名でどのように選択しますか? –