2016-07-05 18 views
0

Wie würden Sie mit einer Situation mit dem folgenden Szenario umgehen?Datenbanktechnik zum Bearbeiten von Datensätzen und Sichern des Datensatzes wird erst aktualisiert, wenn der Datensatz genehmigt wurde

Sie haben eine Tabelle mit Kundendatensätzen mit den folgenden Feldern:

id, name, email, phone 
1, John, [email protected], 515-222-3333 
2, Smith, [email protected], 515-333-444 

John seinen Rekord öffnet und ändert seine Telefonnummer. Der tatsächliche Datensatz des Kunden sollte jedoch erst geändert werden, wenn der Administrator die Änderung genehmigt hat.

Wie würden Sie mit einer solchen Situation umgehen?

Würden Sie?

a. Create an exact replica of customer table called customer-temp 
b. Copy the record of John into customer-temp 
c. let the admin review the updated record in customer-temp 
d. once approved, the record is replaced with the record of john in customer table and remove John's record from customer-temp 

Ist dies die beste Lösung oder gibt es einen besseren Weg, damit umzugehen? Was ist, wenn die Kundentabelle einige andere Tabellen in Relationen hat?

Expert Beratung wäre willkommen. Zu Ihrer Information, ich benutze Postgresql-Datenbank.

----- aktualisiert Format ---

Antwort

0

würde ich für jedes Attribut ein zusätzliches Attribut hat, die Überprüfung benötigt.

In Ihrem Beispiel könnten die Einträge sein:

name die genehmigten Namen enthalten würde, name_tmp die Namen, die vom Benutzer bearbeitet wurden.
Nach der Freigabe wird der Inhalt von name_tmp in name kopiert.

So haben Sie keine Probleme mit Fremdschlüsselbeziehungen.

Wenn Sie wirklich nicht die Attribute in der Haupttabelle möchten, erstellen Sie eine customer_temp Tabelle wie Sie vorgeschlagen mit id als Primärschlüssel und Fremdschlüsselreferenzierung customer. Der Nachteil ist, dass Sie auf diese Weise mehr Joins in Ihren Abfragen benötigen.