Hallo zusammen,
ich habe mal eine generelle Frage zu Datenbanken bzw. Datenbanken-Layouts, weil ich auf dieses Problem schon öfter gestoßen bin und mir nicht sicher bin, welcher der "richtige" Weg wäre.
Wenn ich z.B. das Datenbank-Layout zu einer Anwendung designen würde, die Revisionen von z.B. Dokumenten verwaltet, was wäre die "schönste" Lösung, um hier festzustellen, welche Revision die aktuelle bzw. aktive ist.
Beispielsituation:
Es gibt die Objekte Dokument und Revision. In Revision sind die eigentlichen Daten (also z.B. Name/Titel und Content) gespeichert und "Dokument" ist einfach das Objekt, welches die Revisionen zusammenfasst.
Zwischen Dokument und Revision besteht eine 1:n-Beziehung; Revision hat einen foreign key "document_id".
Nun muss ich irgendwie festlegen, welche Revision nun aktiv ist und somit das eigentliche Dokument darstellt. Hierzu fallen mir 2 Lösungswege ein:
1. Zusätzliche 1:n-Beziehung
"Dokument" bekommt zusätzlich den foreign key "active_revision_id", in dem die id der aktiven Revision gespeichert wird.
2. "Revision" bekommt ein Flag, also eine zusätzliche Boolean-Spalte mit dem Namen "active". Je nach dem, ob es das aktive ist, oder nicht, steht true oder false drin.
Beide Lösungen haben ihre Vor- und Nachteile. Deshalb bin ich mir nicht ganz sicher, welcher wohl eher der "saubere" Weg ist.
Was meint Ihr, was wäre besser?
Danke schonmal für Eure Hilfe!
MfG,
Teddy