Christian Kruse: Datenbanknormalisierung

Beitrag lesen

Moin Steffen,

Warum zwei Tabellen? Warum machst du nicht eine Tabelle „contacts,” die sowohl die Lieferanten als auch die Kunden enthält? Unterscheidbar bleiben sie dann durch ein Attribut „contact_type” (AS ENUM('customer', 'vendor')).

Ich muss ja die Kunden und Lieferanten spezifischen Daten auch irgendwo ablegen. Dafür gibt es dann die Kunden- und Lieferantentabellen. Es sind einfach verschiedene Daten, die sich nur teilweise überschneiden.

z.B. weitere Felder
Kunden -> + newsletter-erwünscht + bankeinzug +
Lieferanten -> + uid + schnelllieferung + zahlungsziel +

Ich glaube, da würde ich aber dann eher den Weg gehen eine Tabelle „vendor_infos” (oder so) zu erstellen, die sich dann via foreign key auf die Kontakte bezieht. Dein Gefrickel (sorry)  mit dem CHECK-Constraint sowie den beiden unterschiedlichen foreign keys sieht für mich nach noch folgenden Schmerzen aus.

LG,
 CK