只是为了确保我正确地解释你的问题: 您目前没有与该领域 username, email, firstname, middlename, familyname, dob, password, country
一个表,要保存历史记录姓名和familyname列。那是对的吗?如果是这样,我建议在表中添加时间有效性列(valid_from,valid_until),并为每个更改插入新行,将当前记录的“valid_from”设置为now(),并将valid_until设置为null 。您还可以将此用户的最后一行的valid_until列设置为now()。 当前记录是valid_until为空的记录。
这个设计是自我描述的,尽管如果你存储了表中所有字段的变化会更好 - 不仅仅是第一个和姓氏。它还允许您存储密码历史记录。
表会是这样的:
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
当Bob改变了他的姓,这成为
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
噢,好吧。那么你如何选择以前的用户名? –