Datenbanken - Zwei Beziehugnen zwischen Tabellen

blckbird

Cadet 4th Year
Registriert
Juni 2012
Beiträge
111
Guten Tag,

ich habe eine Frage zur Datenbanktheorie.
In meiner Datenbank gibt es eine Tabelle in der Informationen über den Benutzer abgespeichert werden (UserID, UserName, etc.). In einer zweiten Tabelle befinden sich Datensätze, die von Benutzern über ein Formular bearbeitet und exportiert werden können.
Wenn ein Datensatz bearbeitet wird, speichere ich die UserID mit dem Datensatz um zu verfolgen welcher User den Datensatz als letzes bearbeitet hat. Es soll auch gespeichert werden welcher User den Dantensatz als letzes exportiert hat.

Das Problem dabei ist, dass ich dann zwei 1:n Beziehungen zwischen zwei Tabellen hätte. Wenn ich diese mit MS Access herstellen möchte funktioniert das nicht (mit referentieller Integrität).

Wie löse ich das Problem? Wenn ich referentielle Integrität ausschalte für diese Beziehugnen wäre das ja schlecht, oder?

Viele Grüße,
blck
 
in LibreOffice Base scheint sowas zu funktionieren...
Ansonsten: Verwende einfach ein vollwertiges RDBMS, nicht diesen Notbehelf Access. Das Ding kann doch gar nichts. Du könntest z.B. n MySQL/MariaDB-Server laufen lassen und von LibreOffice/OpenOffice aus direkt darauf zugreifen.
 
Wenn du nur die Information über den letzten Export und den letzten Update eines Datensatzes benötigst, speicher beides in zwei Feldern im Datensatz. Ein Join mit referentieller Integrietät geht damit auf jeden Fall - auch mit Access.....

Wenn du die ganze Historie speichern willst benötigst du ne weitere Tabelle
 
@Alex1966, d.h. wenn ich in dem Fall referentielle Integrität abschalte ist das nicht schlimm, bzw. was sind die Folgen?
 
Folgen? Du könntest einen User löschen, ohne dass es Auswirkungen auf Datensätze hat, die diesen User referenzieren.
 
blckbird schrieb:
@Alex1966, d.h. wenn ich in dem Fall referentielle Integrität abschalte ist das nicht schlimm, bzw. was sind die
Folgen?

Nee - du schaltest auf KEINEN Fall die referentielle Integrität ab!!!!
Im Beziehung-Manager die gewünschte Tabelle ein zweites Mal einbinden (wird dann als "Tabellenname_1 angezeigt) und dann einfach eine zweite Beziehung herstellen...

Beispiel:

Tabelle1 = User
Tabelle2 = Dokument


Im Beziehungsfenster fügst du jetzt die Tabelle Dokument und 2x die Tabelle User hinzu. Die zweite Tabelle User wird automatisch User_1 genannt. Und nun erstellst du zwischen User und Dokument eine erste Beziehung und zwischen User_1 und Dokument eine zweite Beziehung, beide mit referentieller Integrität.

Und das wars schon... :-)
 
Zuletzt bearbeitet:
Ich weiß nicht ob ich es grad richtig verstanden habe:
Du hast nun zwischen User und Dokument eine n:n Beziehung? Dann google mal nach Transformationsregeln, eine lautet:
Jede n:n Beziehung wird als eigene Relation dargestellt welche die Primärschlüssel der beiden Seiten als Fremdschlüssel aufnimmt.
Benennen tut man die meist aus einem Mischmasch aus den zwei Seiten, wie DokumentUser oder so
 
Zurück
Oben