重组现有网站上的表,以存储历史数据



我一直试图找到一个匹配我的问题在现有的问题,我会接受链接作为答案,并关闭我的问题,如果你有他们。

我想找到一种方法来重组我现有的表。我有一个网站,我花了很长时间在上面。现在我有了所有的表和选择。不幸的是,当用户更新他们的信息时,"First Name"Last Name"表发生了很大的变化。我想要存储这些字段的历史数据,这样我就可以在用户更改了他们的真实姓名后找到他们。这些名字并不是唯一的,但它们比他们的身份证号码更容易记住。因此,我有一个包含字段(用户名、电子邮件、名、中名、姓、工作、密码、国家)的成员表。我是否应该为firstname和familyname创建新表,以便存储更改?

我也遇到过类似的问题。我摆脱了困境,所以创建了一个包含这些字段的表

| Id | id_user | name_field | value | date |

我想了很多清楚……"name_field"表示用户已更改…(姓名、国家等)" value "是单元格中的" date "

我认为答案是肯定的。为名/姓添加新字段,并找到一个合适的算法将"fullname"转换为"first"one_answers"last"(有很多,你甚至可以使用excel)

只是为了确保我正确理解了你的问题:您目前有一个包含字段的表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为空的记录。

这种设计是自描述的,但是如果您存储表中所有字段的更改(而不仅仅是名字和姓氏)会更好。它还允许您存储密码历史记录。

表应该是这样的:

id
username
email
firstname
middlename
familyname
dob
password
country
valid_from
valid_until
例如:

    id    username    email    firstname    familyname    ...    valid_from    valid_until
-----------------------------------------------------------------------------------------------------
   1      bob        bob@b.com Bob          Smith                1/Jan/2011    null

当Bob改变他的姓时,这变成

    id    username    email    firstname    familyname    ...    valid_from    valid_until
-----------------------------------------------------------------------------------------------------
   1      bob        bob@b.com Bob          Smith                1/Jan/2011    1/Aug/2011
   1      bob        bob@b.com Bob          Brown                1/Aug/2011    null

相关内容

  • 没有找到相关文章

最新更新