1

既存の質問で自分の問題に一致するものを見つけようとしています。リンクを回答として受け入れ、リンクがある場合は質問を閉じます。

私が見つけようとしているのは、既存のテーブルを再構築する方法です。私はウェブサイトを持っていて、かなり長い時間を費やしました。これで、すべてのテーブルと選択が配置されました。残念ながら、ユーザーが自分の情報を更新すると、「名」「姓」テーブルは大きく変化しています。これらのフィールドの履歴データを保存したいので、ユーザーが名前を変更した後、実名でユーザーを見つけることができます。名前は一意ではありませんが、ID 番号より覚えやすいです。そのため、フィールド (ユーザー名、電子メール、ファーストネーム、ミドルネーム、ファミリーネーム、DOB、パスワード、国) を含むメンバーのテーブルがあります。変更を保存できるように、firstname と familyname の新しいテーブルを作成する必要がありますか?

4

3 に答える 3

2

私も同様の問題を抱えていました。状況から抜け出したので、このようなフィールドでテーブルを作成しました。

| Id | id_user | name_field | value | date |

はっきりしていると思います..." name_field"は、ユーザーが変更されたということです...(名前、国など) " value"はセル内にあり、" date"は変更があったときです。

于 2011-08-16T08:48:13.960 に答える
1

私があなたの質問を正しく解釈したことを確認するために:あなたは現在フィールド username, email, firstname, middlename, familyname, dob, password, country を持つテーブルを持っていて、名と家族名の列の履歴を保存したいと思っています。あれは正しいですか?

その場合は、テーブルに時間有効性列(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        bob@b.com Bob          Smith                1/Jan/2011    null

ボブが家族の名前を変更すると、これは次のようになります。

    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
于 2011-08-16T09:01:51.683 に答える
1

I'd suggest the answer is YES. Add new fields for first/family name, and find a decent algorithm for converting "fullname" to "first" and "last" (there are many out there, you can even use excel)

于 2011-08-16T08:45:36.147 に答える