Verwendung von Primär- und Fremdschlüssel

Hallo,
in einer Tabelle „Familienliste“ mit einem Primärschlüssel habe ich die Namen der Familienmitglieder aufgelistet.
In einer weiteren Tabelle „Freunde“ mit einem Fremdschlüssel habe ich die Namen der Freunde aufgelistet.
Die Schlüssel der beiden Tabellen habe ich miteinander verknüpft.

Wenn ich dem Familienmitglied „A“ zwei Freunde „b“ und „c“ zuordnen will, trage ich den Primärschlüssel von „A“ in den Fremdschlüssel von „b“ und „c“ ein.

Was mache ich aber wenn Familienmitglied „B“ ebenfalls den Freund „c“ hat ? Der Fremdschlüssel von „c“ ist schon belegt.
Datensätze doppelt anlegen gilt ja nicht.

gruß
kps

Das ist ein klassischer Fall von n:m-Beziehung:

– Ein Familienmitglied kann n Freunde haben
– Jemand kann Freund von m Familienmitgliedern sein.

Du brauchst also eine Zwischentabelle, die 1:n mit den Familienmitgliedern und 1:n mit den Freunden verknüpft ist.

(Bei weitergehender Betrachtung wird man zu dem Ergebnis kommen, dass die Trennung der Entitäten „Familienmitglieder“ und „Freunde“ unangemessen ist, und eine übergreifende Entität „Person“ einführen, die dann entsprechend mit sich selbst verknüpft wird…)

Gruß aus dem Norden
Reinhard Kraasch

(http://www.dbwiki.de - das Datenbank-Wiki)