Moin Moin,
ich bin neu hier und würde mich über Unterstützung sehr freuen. Sollte es mir möglich sein, werde ich auch versuchen, Anderen zu helfen.
Also es mir geht um folgendes:
Ich möchte mehrere Dokumente bestimmten Projekten zuordnen. Diese Dokumente sollen bei Änderungen archiviert werden und Revisionsnummern (Versionskontrolle) erhalten. Zweck ist es, diese am Ende in einer bestimmten Reihenfolge in Word aneinander zu hängen. Es soll also aus vielen kleinen Dokumenten (von einem bestimmten Projekt) ein großes Word-Dokument (Spezifikation) herauskommen.
Wird eine Revision für eine Spezifikation festgelegt, wird in der Tabelle SpecMapper alle zugehörigen Word-Dokumente gesichert, mit der zugehörigen SpecID. Damit kann man sie sich jederzeit wieder zusammensetzen lassen, ohne Sie speichern zu müssen.
Meine Frage:
1) Findet ihr grobe Fehler im Datenbankmodell? Ich habe da keine Erfahrung, stehe aber unter Termindruck.
2) Ich füge in der Tabelle Documents die Daten ein, daraufhin bekommt diese automatisch einen neuen PK.
Wie komme ich an den, ohne eine Abfrage zu starten? Ich muss den nämlich auch Einfügen (DoCmd.RunSQL(INSERT...)) und benötige den, um die beiden Tabellen zu verknüpfen.
Das Modell findet ihr im Anhang. Bin für Hilfe echt sehr dankbar.
mit freundlichen Grüßen,
Timo
[Anhang gelöscht durch Administrator]
Hallo,
die Beziehung User zum Dokument ist falsch da mit jeder Revision der User wechseln könnte der die Änderung erstellt hat.
Also sollte der User 1:n zur Tabelle DokumentRevisions stehen.
Das Feld Created by bei Dokumente wird dadurch überflüssig, und ersetzt durch Revisions-Datum. (Erstes Revisions-Datum ist Erstell-Datum)
Der Rest sieht auf den ersten Blick OK aus, von der fehlenden FK benennung in Tabelle Spezifikation. und dass ProjektID in Tabelle Projekt nicht gleichzeitig PK und FK sein kann.
Ich würde noch die Kardinalitäten (Beziehungsnummern) eintragen.
Gruß Andreas
Hey, vielen Dank für die Antwort.
Was meinst du mit, der könnte wechseln? Ich möchte wissen, welcher User die neue Revision veranlasst hat, also sollen es ja verschiedene Benutzer sein. Oder verstehe ich da etwas falsch?
Wieso nicht PK gleich FK? In diesem Fall, identifiziert Projects.ProjectID einmal eine Spezifikation und mehrere Dokumente.
Das mit den Kardinalitäten ist eine gute Idee.
Danke schon mal soweit.
Hallo,
User A erstellt das Dokument -> Revision 0
User B ändert ab understellt eine neue Version -> Revision 1
usw.
Daher sollte der Userame immer bei den Revisionsdaten stehen und nicht beim Dokument.
Wenn du wissen möchtest welcher User ursprünglich erstellt hat ist der User(ID) der Revision 0 zu nehmen.
PK kann nicht identisch sein mit FK, bzw. es gibt dann keinen FK sondern nur PK.
FK muss immer Bezug zu einem PK haben aber nicht zwingend umgekehrt.
Gruß Andreas
Ich verstehe. Danke dir!
Werds berichtigen.