AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Foreign Key Referenzierungsproblem
Thema durchsuchen
Ansicht
Themen-Optionen

Foreign Key Referenzierungsproblem

Ein Thema von dataspider · begonnen am 4. Jul 2006 · letzter Beitrag vom 4. Jul 2006
Antwort Antwort
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#1

Foreign Key Referenzierungsproblem

  Alt 4. Jul 2006, 10:33
Datenbank: Firebird • Version: 1.53 • Zugriff über: IBO, IBExpert
Hallo,

ich habe mir wohl selbst ein kleines Ei gelegt.
Ich habe die Tabellen Mitarbeiter und Mandant.
Tabelle Mandant hat das Feld Mitarbeiter_id und die Tabelle Mitarbeiter das Feld Mandant_id.
Beide Beziehungen sind über Foreign Keys verknüpft.

Jetzt erzeuge ich eine leere DB und merke, dass ich weder in Mandant noch in Mitarbeiter Daten anlegen kann, da von der anderen Tabelle der Record mit PK 0 fehlt (Circulus vitiosus).

Fehler:
(violation of FOREIGN KEY constraint "MAMANDANT_FK" on table "MITARBEITER)

Jetzt kann ich natürlich mal die Beziehung auflösen und dann wieder herstellen.
Aber vielleicht kann mir ein Profi sagen, wie ich das Ganze handeln sollte.
Muss ich solche sich gegenseitig referenzierenden Beziehungen vermeiden oder gibt es eine saubere Lösung?

Dass das DB - Design hier nicht sauber ist, ist mir klar. Mir geht es jetzt nur ums Prinzip.
Ich muss auch zu meiner Verteidigung noch sagen, dass die 2 Beziehungen unterschiedliche Hintergründe haben.
Mandant_id in Mitarbeiter referenziert die Zugehörigkeit des Mitarbeiters ztur Firma.
Mitarbeiter_id im Mandant referenziert den verantwirtlichen Vertriebsmitarbeiter der Firma.
In Zukunft werde ich das sicher in seperaten Tabellen verwalten.

Danke, Frank
Frank Reim
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Foreign Key Referenzierungsproblem

  Alt 4. Jul 2006, 10:39
Ich würde einfach die Zuordnung des zuständigen Vertriebmitarbeiter in eine Zurdnungstabelle auslagern, hat auch den Vorteil das mehrere Mitarbeiter zugeordnet werden können.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Foreign Key Referenzierungsproblem

  Alt 4. Jul 2006, 11:50
Zitat von mkinzler:
Ich würde einfach die Zuordnung des zuständigen Vertriebmitarbeiter in eine Zurdnungstabelle auslagern, hat auch den Vorteil das mehrere Mitarbeiter zugeordnet werden können.
Wenn ich dich richtig verstehe, sind solche Kreuzbeziehungen also nicht zulässig ?!
Somit werde ich diese vermeiden bzw. auflösen.

Danke

Frank
Frank Reim
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Foreign Key Referenzierungsproblem

  Alt 4. Jul 2006, 11:52
Du könntest natürlich auch NULL für das Referenzfeld zulassen, besser finde ich aber die Lösung über eigene Tabelle.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Foreign Key Referenzierungsproblem

  Alt 4. Jul 2006, 12:18
Zitat von mkinzler:
Du könntest natürlich auch NULL für das Referenzfeld zulassen, besser finde ich aber die Lösung über eigene Tabelle.
Das hatte ich probiert. Aber sobald du einen Foreign Key zum Feld anlegst, wird null nicht mehr akzeptiert.
Zumindest meckerte er auch bei meinen Tests.

Frank
Frank Reim
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz