Hi!
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.
Nicht ganz. Die "Stammdaten" sind unterschiedlicher Art und deswegen verteilt auf Tabelle1, Tabelle2 und Tabelle3.
Die Notizen möchte ich gern zu allen Stammdaten in allen 3 Tabellen machen können. Die Notizen sollen aber in nur einer Tabelle abgespeichert werden. Es soll also Notizen z.B. für "Tabelle1/id4711" und "Tabelle3/id0815" geben. (Bitte die Notizen nur beispielhaft sehen.)
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.
Ja - Notizen als extra Tabelle.
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.
Genau, diesen Fall gibt es ja auch noch. n=0.
Grüße
- Steffen