Verknüpfte Datensätze "berichtigen" !?

  • geschlossen
  • Access

  • yannikst
  • 1449 Aufrufe 4 Antworten
  • Verknüpfte Datensätze "berichtigen" !?

    Hallo Leute !!

    Ich bin dabei eine Software-Datenbank zu erstellen. Dabei gibt es eine Tabelle "Benutzer" und eine Tabelle "Rechner".

    Benutzer:
    - Benutzername (P)
    - Vorname
    - Nachname

    Rechner:
    - IPadresse (P)
    - Rechnername
    - Benutzername

    Beide sind 1:n verknüpft. Also ein Benutzer kann mehrere PCs in Betrieb haben aber ein Rechner jeweils nur von einem Benutzer...

    Jetzt kann es ja sein, dass ein benutzer wegfällt. Wenn der Datensatz dann aus der Tabelle "Benutzer" gelöscht wird, soll auch das Feld "Benutzername" in der Tabelle "Rechner" geleert werden, da ja der Benutzer den PC nicht mehr nutzen kann, da er nicht mehr existiert, ABER der Rechner an sich ja immer noch existiert, nur eben im Moment nicht genutzt wird von einem Benutzer. Im Moment kann ich überhaupt nciht einmal einen Benutzer löschen, ohne, dass Access meckert.... Wie muss/kann ich das einstellen ?
  • Hi,

    so wie Du das beschreibst funktioniert das natürlich nicht. In Deinem Fall hängt die Tabelle Rechner an der Tabelle Benutzer, da ein Benutzer einen oder mehrere Rechner in Betrieb haben kann.
    Wenn Du jetzt einen Benutzer löschen willst, prüft Access auf Basis der 1:n-Verknüpfung, ob da ggf. noch zugehörige Datensätze in der Tabelle Rechner da sind. Ist das der Fall, wird das Löschen abgelehnt, da ansonsten die Datenzuordung nicht mehr 'stimmig' wäre.
    Aus meiner Sicht ist die Konstellation der Tabellen für diese Anforderung falsch gewählt. Ich würde das so aufbauen:
    - Tabelle Rechner (mit Infos über den Rechner selbst, z.B. IP, logischer Name, dgl)
    - Tabelle Benutzer (mit Infos über den Benutzer, d.h. Name dgl.)
    - Tabelle PCUser (mit Infos über die Zuordnung eines Benutzers zu einem PC)

    D.h. Du brauchst eine dritte Tabelle als Verbindung zwischen den Benutzern und den PCs, das nennt sich im Fachchinesisch 'Intersection'. Damit kannst Du beliebig viele Zuordnungen von Benutzern und PCs verwalten, d.h. auch angelegte wieder löschen.

    Viel Erfolg...
    Gruß,
    dummschnurrer
  • Hi !

    Aber macht man eine Zwischentabelle denn nicht nur bei einer m:n Beziehung ? Oder verwechsele ich da jetzt etwas ?

    Und kann dann ein Rechner auch nur von EINER Person genutzt werden ? Das ist nämlich schon wichtig...
  • Stimmt schon, daß man Zwischentabellen eigentlich hauptsächlich für m:n-Beziehungen braucht. Aber es spricht nichts dagegen, das auch in Deinem Fall einzusetzen; man ist damit wesentlich felxibler, auch wenn das Anlegen etwas mehr Aufwand bedeutet. Natürlich kann man damit auch nur EINEN Benutzer an EINEN PC hängen; für jede Verbindung zwischen Benutzer und PC muß eben ein Datensatz da sein.
    Das Problem liegt in Deiner Konstellation mit zwei Tabellen darin, daß Du benutzerspezifische Daten mit in der Rechnertabelle ablegst. Damit passt die Aufteilung der Daten nicht, denn man sollte beim Aufbau einer Datenbank immer logisch zusammengehörigen Daten in einer Tabelle ablegen.
    Have fun ...
    Gruß,
    dummschnurrer