Tabelle an alternative Tabellen binden (DB-Entwurf)

timoheil

Grünschnabel
Hallo,

ich möchte in einer MySQL-Datenbank eine Tabelle mit "To-Do"-Einträgen erstellen. Diese Tabelle enthält, z.B. den Info-Text, Datum/Termin/Frist-Angaben.

Nun möchte ich die To-Do-Einträge alternativ allgemein für Kunden, deren Projekte, oder Unterprojekte dieser Projekte machen. Ursprünglich hatte ich die To-Do-Tabelle per ID nur mit den Unterprojekten verknüpft und mir so alle Daten (Projekt, Mandant..) "gezogen".

Nachdem ich nun aber wie oben beschrieben auch allgemeinere To-Dos eintragen möchte, die nicht für ein bestimmtes Unterprojekt, sonderen eben auch für Projekte und Mandanten gelten, frage ich mich, wie ich vorgehe:

- 3 verschiedene To-Do-Tabellen, z.B. todo_mandant, todo_projekt, todo_unterprojekt ...jeweils verknüpft mit mandanten-ID, Projekt-ID, unterprojekt-ID

- oder eine To-Do-Tabelle, wobei jeder Datensatz alternativ geknüpft ist an Mandant, Projekt oder Unterprojekt. Wie würde in diesem Fall die SQL-Abfrage aussehen. Soll die Tabelle drei Spalten haben: mandanten-ID, Projekt-ID, und unterprojekt-ID, von denen jeweils eine eine Eintrag enthält?

Für Vor-/und Ratschläge wäre ich dankbar

Gruß
-timo-
 
Servus!

Ich würde nur eine Tabelle machen und alle 3 Werte zusammenspeichern.
Die unterschiedlichen Datensätze kannst du Beispielsweise mit einem zusätzlichen Feld namens TODO_TYPE unterscheiden.
TYPE=0 //Mandant
TYPE=1 //Projekt
TYPE=2 //Unterprojekt
...

Dann kannst du bei deinen Abfragen beliebig nach den versch. Typen filtern.
usw.

HTH Gruß Tom
 
Hallo & Danke für die Antwort.

Wie würde ich in so einem Fall die SQL-Abfrage machen?

Bezieht sich der To-Do-Datensatz auf ein Unterprojekt würde ja beispielsweise so vorgehen:
SELECT.....
FROM mandanten m, projekte p, unterprojekte p, todo t WHERE t.unterprojekteid = u.id
AND u.projekteid = p.id
AND p.mandantenid = m.id

...um soe an alle Daten razukommen, die angezeigt werden sollen.

Wenn ich nun erstmal die Bindung festlege - wie von dir vorgeschlagen - habe ich zwei spalten z.B. bindungs-typ und bindungs-id.

Analysiere ich dann erstmal für jede Todo-Zeile den Typ => ist dann z.B. Mandant und fahre dann eine SQL-Abfrage "...WHERE t.bindungsid = m.id" ?

Lassen sich diese beiden Schritte in einer SQL-Abfrage zusammenfassen?

Gruß
-timo-
 

Neue Beiträge

Zurück