2010-12-08 12 views
0

私は、顧客の詳細、名前、住所、連絡先などを保存するウェブサイトを持っています。顧客はフォームを通じて自分の詳細を更新することができます。これを実装するためのベストプラクティスは何ですか?私は、既存のデータ上でUPDATE文をお客様の詳細を更新する

を使用していますか、または私は古い新しい詳細を持っているのですか?

お客様が詳細を更新する際にアマゾンなどのウェブサイトを使用していると、私は考えています。詳細が正しくない場合はどうなりますか?アマゾンはバックアップとして古い細部の記録を持っていますか?

お客様が999 Fake Streetに住むなどの場合。また、問題が発生し、新しい更新された詳細のために顧客に連絡できない場合はどうなりますか?例えば、顧客はサービスを受け取り、支払いを避ける。

お客様の情報を更新するか、古いデータを別のテーブルに移動して更新する必要がありますか?

希望どうもありがとうございました。

+0

ユーザープロファイルの変更の履歴を保存する方法、またはユーザーが正しい情報を入力する方法を尋ねていますか?あなたの質問のように聞こえるのは、ユーザーが正しい情報を入力することを保証する行に沿っているということです。これは、データの質問よりもインターフェイス設計の問題です。 – morganpdx

+0

両方のabitを本当に聞いていますが、顧客の詳細を更新するだけでいいのですか、そうする前にバックアップを取るべきですか? – Elliott

答えて

0

Elliott、あなたが求めているデータベースデザインはビジネスルールに基づいていなければなりません。 Facebook、twitter、amazon、またはMom's PizzaのDBAは、保存する古いアドレスの数を減らしませんでした。 BAに住所に関する規則を尋ねます。答えが「現在のアドレスのみを保持する」場合は、質問に記載されているUPDATE声明を実装してください。 BAがあなたに空白の目を与えた場合は、更新ごとに新しい行を挿入し、最新のクロノレコードを表示し、何も削除しないでください。

DBAがビジネスルールの完全なセットを受け取った場合にのみ、設計が開始されます。

0

お客様の表にInfoDateなどのフィールドを追加します。次に、InfoDateがその顧客の最大値である各顧客のレコードのみを表示するビューを介してデータにアクセスできます。

アーカイブのために別のテーブルに移行する煩雑なプロセスをせずにすべてのデータを保持し、ビューの代わりにテーブルを直接照会することで履歴データに簡単にアクセスできます。

+0

ありがとうございます。実際に更新する前にデータを保存する必要はありますか?データ保護法は「必要以上に長く保管しない」と述べていますが、実際に使用している場合を除いては必要ありません。 – Elliott

+0

おそらくすべての顧客のためにすべてのエントリを保存する必要はありません。エラーが発生した場合、顧客ごとに少なくとも1つの履歴レコードが必要であるというケースを作ることができます。顧客が何らかの情報を間違って入力した場合、戻ってくるという選択肢があることは良いことです。私は英国の法律専門家ではありませんが、データモデルの提案をしています。 – JNK

関連する問題