AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbankdesign - Versionierung von Dokumenten (Datensätzen)
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbankdesign - Versionierung von Dokumenten (Datensätzen)

Ein Thema von Grolle · begonnen am 10. Sep 2009 · letzter Beitrag vom 10. Sep 2009
Antwort Antwort
Seite 1 von 2  1 2      
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#1

Datenbankdesign - Versionierung von Dokumenten (Datensätzen)

  Alt 10. Sep 2009, 08:39
Datenbank: noch keine • Version: noch keine • Zugriff über: noch gar nicht
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 ....

  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät

  Alt 10. Sep 2009, 09:30
Ich würde einfach ein weiteres Feld für die Version anlegen.
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät

  Alt 10. Sep 2009, 09:36
dito

alles andere ist unnötiger Aufwand.


Heiko
Heiko
  Mit Zitat antworten Zitat
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#4

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät

  Alt 10. Sep 2009, 09:41
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

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.
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät

  Alt 10. Sep 2009, 09:45
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?

  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät

  Alt 10. Sep 2009, 09:46
Hallo,

naja

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

1. Version
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
Heiko
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät

  Alt 10. Sep 2009, 09:53
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

  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät

  Alt 10. Sep 2009, 10:07
@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)
Markus Kinzler
  Mit Zitat antworten Zitat
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#9

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät

  Alt 10. Sep 2009, 10:15
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Datenbankdesign - Versionierung von Dokumenten (Datensät

  Alt 10. Sep 2009, 10:17
SQL-Code:
select
    first 1 *
from
    dokumente
where
    dokid = :dokid
order by
    version desc;
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:48 Uhr.
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