Supportnet / Forum / Datenbanken
referenzielle Integrität für zusammengestzten Schlüssel?
Frage
Klingt vielleicht kryptisch, trotzdem:
Wie kann ich eine n:m Beziehung zwischen zwei Relationen (d.h. über Beziehungsfeld 1:n und nochmal 1:n) referenzielle Integrität schaffen, wenn der Primärschlüssel ein aus 2 Attributen zusammengestzter Schlüssel ist?
Bsp. Studie#(pk),Projekt#(pk),Name,... mit Studie#(pk),Autor#(pk),Projekt#(pk),... mit Autor#,Autor ?
Access will offenbar einen eindeutigen Index den ich ihm aber nicht liefern kann, da ich für meine Primärschlüssel Duplikate zulassen muß.
Wer weiß hier Rat?
Antwort 1 von asok
Inwiefern (bzw. in welcher Relation) musst du für deine Primärschlüssel Duplikate zulassen?
Antwort 2 von mazzy
Nun, der Primärschlüssel in der Relation Studie setzt sich zusammen aus: Studien# und Projekt# ! Anders geht es nicht, da es gleiche Studien# für versciedene Projekte geben kann.
EIn anderer User sagte mir. er kenne das Problem nicht, da er mit dem create Table Befehl seine Relationen erstellt und über References die Verbindungen schafft. Ich mache es jedoch über Beziehungen von MS Access und hier will Access einen eindeutigen Schlüssel haben (d.h. ohne Duplikate ) um referenzielle Integrität zu schaffen.
EIn anderer User sagte mir. er kenne das Problem nicht, da er mit dem create Table Befehl seine Relationen erstellt und über References die Verbindungen schafft. Ich mache es jedoch über Beziehungen von MS Access und hier will Access einen eindeutigen Schlüssel haben (d.h. ohne Duplikate ) um referenzielle Integrität zu schaffen.
Antwort 3 von KawaVN800
Hi!
wie wärs mit:
Laufendenr#(pk - (Autowert) eindeutig),Studie#(pk),Projekt#(pk),Name,...
mit:
Laufendenr#(pk - (Longinteger) eindeutig), Studie#(pk),Autor#(pk),Projekt#(pk)?
Der Autowert hat mich schon oft aus diese Situationen herausgeholfen!
CU
Carlo (:-))
wie wärs mit:
Laufendenr#(pk - (Autowert) eindeutig),Studie#(pk),Projekt#(pk),Name,...
mit:
Laufendenr#(pk - (Longinteger) eindeutig), Studie#(pk),Autor#(pk),Projekt#(pk)?
Der Autowert hat mich schon oft aus diese Situationen herausgeholfen!
CU
Carlo (:-))
Antwort 4 von asok
Ob du die Tabellen mit den grafischen Tools von Access oder mit SQL-Kommandos erzeugst macht keinen Unterschied, was die referentielle Integrität angeht.
Darüberhinaus kann ein Feld nur dann als Primärschlüssel dienen, wenn _keine_ Duplikate vorkommen.
Ich würde ebenfalls einen AutoIndex zur Hilfe nehmen, um die Beziehungen herzustellen:
- Studien (StudieIndex[PK], Studie#, Projekt#)
- Autoren (Autor#[PK],Autor)
- Zuordnungen (StudieIndex,Autor#)
Damit wären deine Relationen in der Normalform.
Darüberhinaus kann ein Feld nur dann als Primärschlüssel dienen, wenn _keine_ Duplikate vorkommen.
Ich würde ebenfalls einen AutoIndex zur Hilfe nehmen, um die Beziehungen herzustellen:
- Studien (StudieIndex[PK], Studie#, Projekt#)
- Autoren (Autor#[PK],Autor)
- Zuordnungen (StudieIndex,Autor#)
Damit wären deine Relationen in der Normalform.
Antwort 5 von teccer
versuchs mit einem autowert feld ohne primärschlüssel, danns chlägst du zwei fliegen mit einer klappe

