Wie setzte ich das Sinnvoll um?

CaBoTe

Neuer Benutzer
Beiträge
3
Nehmen wir mal an, ich produziere Spiele Konsolen. Im Garantiefall habe ich zertifizierte Elektromärkte, welche die Konsole reparieren dürfen. Bedeutet wenn ein Kunde mich anruft, kann ich diesen an einen zertifizierten Reparateur verweisen.
Demnach müsste es die Tabellen: Kunde und CertRep geben oder so ähnlich.
Was ist aber nun, wenn ein Kunde gleichzeitig auch ein CertRep ist?

Vor dem Problem steh ich nämlich grade. Beim Versand von Repteilen an einen CertRep muss die Adresse via FK beim Sendungsdatensatz hinterlegt sein. Wenn ich dort einfach plötzlich die Kundennummer eintrage, habe ich bei der Verknüpfung ein Problem, denn die Sendungsadresse ist eine FK ID und kann sowohl aus der Tabelle Kunde, als auch aus der Tabelle CertRep stammen.

Wie löse ich soetwas Sinnvoll?
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.582
Die relational logische Lösung wäre du differenzierst nicht nach Kunden und CertRep sondern hast eine Tabelle für Unternehmen denn eigentlich sind deine beiden jetigen Tabellen ein und das Selbe: Die Entität Unternehmen oder Organisation mit Atributen für eine Adresse oder Zuordnungen mehrerer Adressen.

Um jetzt zwischen Kunden und CertRep zu differenzieren kannst du entweder, simpel mit einem Flag in der Tabelle arbeiten oder, wenn du mehr Informationen wie z.B. Datum von bis speichern willst machst du eine weitere Tabelle mit FK auf Unternehmen und der Klassifizierung oder Gruppe oder wie auch immer man diese Eigenschaft nennen will.
 

CaBoTe

Neuer Benutzer
Beiträge
3
Hallo und danke dir, das Prinzip finde ich sehr gut. Wird zwar ein großer Umstellungsaufwand, aber Designtechnisch empfinde ich es auch als logischer
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.582
Bei einem laufenden System kann man natürlich auch andere Lösungen suchen aber je mehr dieser "Klassifizierungen" du hast desto weniger Sinn macht es, in Tabellen zu trennen. Auch ist die Adressverwaltung und Verarbeitung irgendwie doppelt etc.
 
Oben