Auge: Gleichartige Daten zu mehreren Tabellen

Beitrag lesen

Hallo

Ich bin auf der Suche nach einer eleganten Möglichkeit zu Einträgen in Tabellen Anhänge oder Notizen zu hinterlegen. Die Datensätze um die es hierbei geht sind auf mehrere unterschiedlichste Tabellen verteilt. Nun möchte ich zu diesen Datensätzen gern Anhänge und Notizen hinterlegen. Diese möchte ich aber gern in nur jeweils einer Tabelle für Notizen und Anhänge speichern.

Beispiel

  • Tabelle1
  • Tabelle2
  • Tabelle3
  • Notizen (id, notiz, referenz)
  • Anhänge (id, anhang, name, referenz)

Die Referenz zur Basistabelle könnte ich nun aus dem Namen der Tabelle und der zu referenzieren Zeile zusammensetzen (z.B. "Tabelle1/row1"). Das würde ganz gut funktionieren. (Oder auf 2 Spalten aufgeteilt.)

Gehe ich richtig in der Annahme, dass in der Basistabelle der Stammdatensatz liegt, der, auf den sich die Datensätze aller weiteren Tabellen beziehen? Nimm eine weitere Tabelle und hinterlege die ID des Stammdatensatzes. An der Stelle reicht als Spaltenname auch die ID des Stammdatensatzes, denn das dies die ID des Stammdatensatzes ist, sollte ja klar sein. Ein Konstrukt wie „Tabelle1/row1“ ist meiner Meinung nach daher nicht nötig.

Mein Wunsch wär aber, dass ich das ganze noch über ein Foreign-Key-Constraint sichern könnte. Dazu fällt mir einfach kein gescheiter Weg ein.

Hast du eine (Extra-)Tabelle für die Notizen, musst du irgendwie die Verknüpfung zum Stammdatensatz herstellen. Genau dazu ist der Schlüssel des Stammdatensatzes als Foreign Key in der Notiztabelle (offensichtlich das Feld referenz) notwendig.

Die Notizen möchte ich nicht in die Tabellen1-3 integrieren, da die Notizen hier vereinfacht dargestellt sind und es sich dabei natürlich auch um wesentlich komplexere Strukturen handeln könnte. Außerdem lassen sich auch so 1-n Beziehungen abbilden.

Logisch, spätestens, wenn es nicht zu (fast) allen Datensätzen Notizen gibt, führst du haufenweise leere Felder mit.

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war. Terry Pratchett, “Wachen! Wachen!