Entwickler-Ecke

Datenbanken - Beziehung herstellen


Bronstein - Do 23.06.11 12:56
Titel: Beziehung herstellen
Hallo,
ich muss folgenden Sachverhalt in eine Datenbank umsetzen:
Eine Person kann als Geschäftspartner oder als Vertreter vorkommen, wobei Vertreter auch Geschäftspartner sein können.

Wie würdet ihr die Tabellen aufbauen.

Hier mal mein Vorschlag

Pers(Persnr, Name, ...)
Geschäftspartner(PersNr, ...)
Vertreter(PersNr, ...)

Wie bekomme ich es hin, dass ein Vertreter auch Geschäftspartner sein kann?


zuma - Do 23.06.11 13:12

Wieso eine Tabelle pro Personentyp?

1 Tabelle 'Personen' (Key PID)
1 Tabelle 'Personentypen' Key (TypId)
1 Kreuztabelle Personenzuordnungen (PID, TypID)

könnte dein Problem lösen ;)


Bronstein - Do 23.06.11 13:42

Da die beiden Arten von Personen unterschiedliche Attribute (Spalten) besitzen
Beim Vertreter sind das Fixum und Provision
Beim Geschäftspartner keine


zuma - Do 23.06.11 14:42

Wenn auch ein Geschäftspartner in der DB die Felder hat, heisst das doch noch lange nicht, das man die in der Maske dann zeigen/bearbeiten oder sonstwas muss, oder ? Sprich, die Maske sollte sich dann je nach Personentyp 'umlayouten'.
Läuft hier so seit Jahren (verwalte damit Kunde, Lieferant, Spediteur, Vertreter, Ansprechpartner, etc.), zur Laufzeit kann man eben bei bestimmten Personentypen bestimmte Daten eingeben oder auch nicht.

(z.b. Checklistbox für Typ-festlegung in Maske, wenn da geändert wird, dann Maske 'relayouten' > z.b. Panel_Vertreterdaten.Visible := True oder E_Fixum.Enabled := False, etc)