Angestellte und Angehörige

Guten Morgen …
das dürfte ein relationales Standardproblem sein: wie geht man vor, wenn man Angestellte und ihre Angehörigen verwalten muss, wobei einige Angehörige selbst Angestellte sind?
Mir ist klar: eine Relation für Angestellte (PersNr, Name, Adresse usw.), eine für Angehörige (ID, PersNr_Ang, Name, …). Aber wie vermeide ich Datendoubletten bei den Angehörigen, die bereits in der Angestelltenrelation enthalten sind?
Danke im Voraus
L.

Hallo,

eine richtig gute Möglichkeit daqzu gibt es im relationalen Schema eigentlich nicht. Objektorientiert wäre das kein Problem. Hierzu zwei mögliche Lösungen:

  1. Reflexive Relation und ein Flag, ob jemand auch Angestellter ist.
  2. Generalisierung mit Obertyp: Angestellter is-a Person, Angehöriger is-a Person, Angehöriger gehört zu Angestellter

So richtig befriedigend ist das eigentlich nicht. Wenn man es genau betrachtet, sollte man Angehörige gar nicht speichern. Verstößt wahrscheinlich eh gegen das Datenschutzgesetz.

Redundante Speicherung ist auch gar nicht so schlimm. Wenn ein reales Objekt in zwei unterschiedlichen Rollen auftritt, darf man das ruhig machen.

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Morgen,

ich würde erstmal eine Tabelle ‚Person‘ machen, in der ich all die Daten speicher, die sowohl für Angestellt, als auch für Angehörige gilt.

Von da an gibt es zwei Varianten:
a) zwei zusätzliche Tabellen, eine mit Angestellten, eine mit Angehörigen, die obige Tabelle referenzieren

b) Alle Daten in die oben genannte Tabelle

c) Natürlich kann man die Ansätze auch mischen wenn man möchte

Moin, L,

da fragt der Modellierer: Was ist ein Angehöriger? Wer gehört da wem oder was an? Was will der Anwender über das Verwandtschaftsverhältnis wissen? Erst wenn das geklärt ist, geht’s weiter.

Gruß Ralf

Moin, L,

da fragt der Modellierer: Was ist ein Angehöriger? Wer gehört
da wem oder was an? Was will der Anwender über das
Verwandtschaftsverhältnis wissen? Erst wenn das geklärt ist,
geht’s weiter.

Ehepartner, Söhne, Töchter; allenfalls Adoptivkinder.
Der Betrieb zahlt eine Kinderzulage. Dazu ist an sich nur die Anzahl der Kinder nötig; aber ihr Geburtsdatum wäre praktisch, damit man weiß, wann die Zahlungsverpflichtung endet. Ehepartner wären interessant, weil die Zahlung nur einem Betriebsangehörigen pro Familie zusteht.

Wirds klarer?
L.

Da würde ich dann in der Tat ein gänzlich anderes vorgehen vorschlagen:

Eine Tabelle ‚Angestellter‘ mit selbstreferenz ‚verheiratet_mit‘
und ‚erhält_Kinderzuschlag‘
Eine Tabelle ‚Kind‘ mit Referenz auf Angestelter und nur dem Geburtsdatum als Attribut.

Hi L,

Ehepartner, Söhne, Töchter; allenfalls Adoptivkinder.
Der Betrieb zahlt eine Kinderzulage. Dazu ist an sich nur die
Anzahl der Kinder nötig; aber ihr Geburtsdatum wäre praktisch,
damit man weiß, wann die Zahlungsverpflichtung endet.

redundanzfrei modelliert: Eine Beziehung zwischen der Ursache der Begünstigung (dem Kind) und dem Begünstigten, FS beim Kind.

Ehepartner wären interessant, weil die Zahlung nur einem
Betriebsangehörigen pro Familie zusteht.

Das wäre m. E. der Overkill. So viel Sachverstand traue ich dem Sachberarbeiter zu, dass er/sie einmal das Kennzeichen „Kindergeldberechtigt“ richtig setzt.

Gruß Ralf