2016-07-14 16 views
1

Ich muss eine Lösung implementieren, wo unsere Benutzer eine Entität zuerst erstellen und veröffentlichen können, wenn sie fertig sind.Datenbank-Design-Muster für die Pflege eines Entwurfs Kopie des Datensatzes

Nach der Veröffentlichung kann der Benutzer die veröffentlichte Version bearbeiten, die eine Entwurfskopie der veröffentlichten Version erstellen soll. Der Benutzer kann es erneut veröffentlichen, nachdem er mit seinen Änderungen fertig ist.

  • Entitätssuche sollte immer die neueste Version anzeigen.
  • Sie müssen alle früheren Versionen für Tracking-Zwecke beibehalten.
  • Lösung sollte mit Hibernate arbeiten.
  • Die Datenbank, die ich verwende, ist MySQL.

Gibt es irgendwelche bewährten Datenbank-Design-Muster für dieses von ein bisschen Problem. Alle Einsichten werden geschätzt.

+0

Vielleicht haben Sie mehr Antworten auf http://dba.stackexchange.com/ –

+0

bekommen Warum normal halten nicht nur die Daten in Tabellen, aber den Status 'aktiv' umkehren. Alle normalen Berichte könnten in den aktiven Zeilen (oder zumindest von oben nach unten in einer Hierarchie) auftreten. Es gibt keinen Grund, es zu übersteuern. – Drew

Antwort

0

Ich antwortete nur eine ähnliche Frage: What's the proper way to store this data in a MySQL schema?

table: movie 
id | year_made | rank | title 
---+-----------+------+------------ 
1 | 1995  | 87 | Forest Gump 

table: movie_log 
id | movie_id | user_id | created    | attr | info 
---+----------+---------+---------------------+-------+-------- 
1 | 1  | 123  | 2016-07-14 12:20:34 | title | 阿甘 
2 | 1  | 123  | 2016-07-14 12:21:34 | title | 阿甘正传 
3 | 1  | 234  | 2016-07-14 12:22:34 | title | Forest Gump