Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Problem mit m:n Beziehung

Begonnen von Apo1337, Mai 14, 2009, 11:14:31

⏪ vorheriges - nächstes ⏩

Apo1337

Hallo liebe Community,

ich habe ein Problem mit einer m:n Beziehung.
Meine Tabellen sehen wie folgt aus:
Tabelle_Stellen: StN , StBeschreibung , StAnzahl , ...
Tabelle_Personal: BN , Name , Vorname , ....

nun hatte ich die tabellen mit einer zwischentabelle verbunden:
Tabelle_P_S: ID_P_S , StN , BN

die Verbindungen hatte ich mit referentieller Integrität etc.  und nun habe ich folgendes Problem:
Ich habe versucht in der Datenblattansicht versuchshalber mal die m:n Beziehung auszuprobieren und bereits beim ersten Datensatz in der Tabelle_P_S meckert er rum.
ID_P_S   BN    StN
  1           12      5

sobald ich die StN eingeben möchte kommt eine Fehlermeldung : "Der Datensatz kann nicht hinzugefügt oder geändert werden, da ein Datensatz in der Tabelle "Tabelle_Stellen" mit diesem Datensatz in Beziehung stehen muss." und der Tabelleninhalt wird nicht gespeichert.

Auch mit einem Unterdatenblatt in Tabelle_Personal kommt die Fehlermeldung, sobald ich versuche die StN einzugeben.

MfG Apo

MzKlMu

Hallo,
Du kannst in der Zwischentabelle nur Daten hinzufügen wenn die Schlüsselfelder auch vorhanden sind. Das heist in der Stellentabelle muss ein Datensatz mit der ID 5 vorhanden sein und in der Personaltabelle ein Datensatz mit der ID 12.
Erst dann kann eine Datensatz in der Zwischentabelle angelegt werden.

Was auch richtig ist.
Gruß Klaus

Apo1337

Ja danke dir,

hab ebend auch nochmal gesehen, dass die StN erst bei 200 irgendwas beginnt und es lag einfach daran, dass kein Datensatz mit der ID vorhanden war  :D

Apo1337

ok ich habe meine Datenbank nun eigentlich nach m:n mit aufgebaut, aber das scheint doch falsch gewesen zu sein.. zumindest erscheinen nun unter den "Stellen" statt 4 verschiedenen Bewerbern entweder 4 mal derselbe oder 4 leere Datensätze bei der jeweiligen Stelle etc.

Daher nochmal die Frage verallgemeinert:

ich habe folgende Tabellen
- "P_Stamm" mit "BN" als Schlüssel    'für Stammdaten von Bewerbern
- "P_AV" mit "BN" als Schlüssel          'für Arbeitsverträge(Einsätze) po Bewerber
- "P_S" mit "ID_P_S" als Primärschlüssel und "BN" und "StN" als Fremdschlüssel    'für m:n Verbindung von Stellen und Bewerbern, was ich gern über die Einsätze lösen würde
- "S_Stamm" mit "StN" als Schlüssel          'für Stammdaten von Stellen

das sieht nun so aus:  P_Stamm (1) - (1) P_AV (1) - (n) P_S (m) - (1) S_Stamm

mein Ziel ist es, dass auf 1 Bewerber mehrere Einsätze kommen und auf 1 Einsatz 1 Stelle, aber ich scheine eine Denkblockade zu haben  >:( 

ich habe überlegt, dass ich ja für mehrere Einsätze pro Bewerber entweder die Tabelle "P_S" weiter nutze oder diese lösche, in der Tabelle "P_AV" einfach den Primärschlüssel auf ein neues Feld namens "EinsN" (Einsatznummer) umändere und mit diesem dann die Verbindung zwischen "P_Stamm" und "S_Stamm" herstelle. Dabei würde ich mich über Hilfe allerdings freuen.

also in etwa so : P_Stamm (1) - (n) P_AV (1) - S_Stamm (1)   aber ich bin mir nicht sicher ob das so den gewünschten Effekt hat.

MfG
Apo

Apo1337

Ok m:n hab ich nun hinbekommen, das Thema kann geschlossen werden.

MfG Apo

jensebluemchen

#5
Sorry