Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankdesign - Versionierung von Dokumenten (Datensätzen) (https://www.delphipraxis.net/140013-datenbankdesign-versionierung-von-dokumenten-datensaetzen.html)

Grolle 10. Sep 2009 08:39

Datenbank: noch keine • Version: noch keine • Zugriff über: noch gar nicht

Datenbankdesign - Versionierung von Dokumenten (Datensätzen)
 
Hallo,

ich sitze gerade am Design für eine neue Datenbank. In dieser werden Dokumente verwaltet, welche eine Versionsnummer brauchen. Alte Versionen sollen ggf. wieder aktiv werden. Die Frage ist, ob ich die Version einfach mit in dem Dokumentendatensatz reinschreibe und für eine neue Version den Datensatz neu anlege, oder ob ich das auslagere (wie auch immer)?

Viele Grüße ....

mkinzler 10. Sep 2009 09:30

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät
 
Ich würde einfach ein weiteres Feld für die Version anlegen.

hoika 10. Sep 2009 09:36

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät
 
dito

alles andere ist unnötiger Aufwand.


Heiko

schlecki 10. Sep 2009 09:41

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät
 
also, ich hatte mal das Vergnügen mit einer solchen versionierenden Tabelle... da gab es dann tausend Flags, mit denen man abfragen konnte, ob es:

* die erste Version ist (= Vers. 1)
* die letzte Version ist
* und noch andere, die ich mittlerweile verdrängt hab :D

Das Feld für die letzte Version war dann auch immer mit upzudaten - damals wurden noch keine Trigger eingesetzt, obwohl es auf Interbase und Oracle gelaufen ist. Alles in allem tendiere ich auch zu dieser Lösung, aber man sollte sich vorher wirklich ausgiebigst Gedanken machen.

Grolle 10. Sep 2009 09:45

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät
 
Hi,

im Moment sehe ich das auch als beste Lösung (1 zus. Feld), aber wer weiß, wie sich die Anforderungen noch verändern.

Danke für eure Einschätzung ...

// OHHHH 1000.er Beitrag - bekomme ich nen lila Stern? :stupid:

hoika 10. Sep 2009 09:46

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät
 
Hallo,

naja

SQL-Code:
create table doc
(id integer not null, version integer not null, doc blob)

1. Version
SQL-Code:
where version = 1
letzte Version
SQL-Code:
select first 1 * from doc
order by version desc

Version 1.0 des Programms ist fast fertig ;)


Heiko

Grolle 10. Sep 2009 09:53

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät
 
Zitat:

Zitat von hoika
Version 1.0 des Programms ist fast fertig ;)

Die restlichen 30 Tabellenscripte sind unterwegs zu dir. Hoffe du schaffst Version 1.0 RC vor 11.00 Uhr :mrgreen:

mkinzler 10. Sep 2009 10:07

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät
 
@hoika dann würdest du einen zusammengesetzten Primärschlüssel benötigen, besser wäre es einen künstlichen Schlüssel zu verwenden.

SQL-Code:
create table doc
(id integer not null, Dokid integer not null, version integer not null, doc blob)

schlecki 10. Sep 2009 10:15

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät
 
Zitat:

Zitat von hoika
Hallo,

naja

letzte Version
SQL-Code:
select first 1 * from doc
order by version desc

Version 1.0 des Programms ist fast fertig ;)


und wie sieht jetzt zum Beispiel das SQL aus, das alle Dokumenten in der letzten Version in einem best. Verzeichnis liefert?

mkinzler 10. Sep 2009 10:17

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät
 
SQL-Code:
select
    first 1 * 
from
    dokumente
where
    dokid = :dokid
order by
    version desc;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:59 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz