Johnny B.: primary_id über zwei Tabellen

Beitrag lesen

Hallo geehrtes Forum,

in meiner mySQL-DB habe ich eine Tabelle angelegt mit einer primary_id. Die dort gespeicherten Daten (Typ A) haben alle dieselben Felder (soweit ganz normal). Nehmen wir als Beispiel an Typ A wäre eine CD.

Nun kommt eine weitere Art Daten (Typ B = Buch) hinzu, die wiederum ganz andere Felder benötigt. Beide Datentypen sollen über eine eindeutige ID verfügen.

Nun kann ich natürlich alle Daten von Typ A und B einfach in die erste Tabelle schreiben und alle zusätzlich benötigten Felder einfügen. Das Ergebnis wäre, daß bei einer Spalte vom Typ A alle für Typ B relevanten Felder leer blieben und ebenso andersherum. Ist glaube ich nicht optimal, zumindestens nicht sehr übersichtlich und widerspricht bestimmt auch dem Normalisierungsgedanken. Falls dann noch Typ C D E F und G hinzukommen, ist das Chaos perfekt.

Wenn ich alternativ eine neue Tabelle für die Daten Typ B aufmache, wie stelle ich dann sicher, daß der primary_id über beide Tabellen nie doppelt vorkommt? Geht das direkt mit mySQL? (Ich kann natürlich die höchste ID mit einem Script abrufen, aber was, wenn ein manueller Eintrag per phpmyAdmin erfolgt?)

Oder macht in diesem Fall eine dritte Tabelle Sinn, in folgender Form:

ID | Typ | typ_id
----+-----+--------
  1 | A   | 1
  2 | A   | 2
  3 | B   | 1
  4 | A   | 3

Hat jemand dazu eine Idee?

Besten Gruß
JOhnnY