0

Datenbankdesign - Veranstaltungsdatenbank

Ich habe folgendes Problem mit meiner Veranstaltungsdatenbank:

Es gibt viele Veranstaltungen mit einem oder mehreren Veranstaltungsterminen

Jede Veranstaltung wird von einem oder mehreren Moderatorinnen/ Moderatoren begleitet

Wenn ich die Moderatorinnen und Moderatoren einer Veranstaltung zuordne, möchte ich, das die Personen auch automtisch jedem Veranstaltungstermin zugeordnet werden, sodass ich in der Tabelle Personen sehen kann, an welchen Veranstaltungsterminen die einzelnen Personen eingesetzt waren.

Ich erläutere das noch einmal an einem Beispiel: Wenn Peter und Monika die Veranstaltung "Kochen für Anfänger" moderieren, die an drei aufeinanderfolgenden Dienstagen stattfinden soll, möchte ich die beiden nur der Veranstaltung "Kochen für Anfänger" zuordnen. Wenn ich dann Peters Daten in der Personen-Tabelle ansehe, möchte ich alle Veranstaltungstermine (also die drei Dienstage) in Tabellenform sehen.

Wie würdet ihr dieses Problem lösen?

Ich hoffe, ich habe mich verständlich ausgedrückt, damit ihr mir helfen könnt.

Liebe Grüße

Alfred

8 Antworten

null
    • Alfred
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Ich habe jetzt mal eine Beispieldatenbank (212_Veranstaltungstermine updaten) in den Webinarordner gelegt. Ich hatte nun die Idee, allen Veranstaltungsterminen per Knopfdruck die Moderatorinnen und Moderatoren zuzuordnen, die ich in der Tabelle Veranstaltung angelegt habe. Seht euch doch bitte einmal die Tabelle Veranstaltungen an. Die Funktion, die die Schaltfläche benötigen würde übersteigt mein derzeitiges Programmierkönnen. Vielleicht lässt sich das ja sogar so regel: Wenn ich eine neue Person als Moderator einer Veranstaltung zuordne, wird dieser Moderator auch allen Veranstaltungsterminen dieser Veranstaltung zugeordnet.

    Viele Grüße

    Alfred

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Alfred,

    die Formel für den Button:

    ---

    let my := this;
    for ii in Veranstaltungsmoderation do
    for jj in Veranstaltungstermine do
    let new := (create Veranstaltungsterminmoderation);
    new.(Veranstaltungstermine := jj);
    new.(Personen := ii.Personen)
    end
    end

    ---

    Habe ich bereits eingefügt.

    Und die Formel für den Trigger beim Einfügen einer Person:

    ---

    let my := this;
    for ii in Veranstaltung.Veranstaltungstermine do
    let new := (create Veranstaltungsterminmoderation);
    new.(Personen := my.Personen);
    new.(Veranstaltungstermine := ii)
    end

    ---

    Habe auch eingefügt. 

     

    Leo

    • Alfred
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    ich bin begeistert. Vielen Dank. Da wäre ich von selbst nicht hingekommen. Jetzt weiß ich auch endlich, wie man Datensätze per Schleife ansprechen kann. Das mit dem Trigger habe ich allerdings noch nicht verstanden - kannst Du mir sagen, wo  die Triggerformel genau eingefügt werden muss?

    Viele Grüße

    Alfred

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Alfred,

    in der Tabelle Veranstaltungsmoderation beim Feld Personen

    Leo

    • Alfred
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    vielen Dank.

    Alfred

    • Alfred
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Ich dachte ja, ich hätte jetzt einiges verstanden und wollte einen Knopf implementieren, mit dem ich die Zuordnung der Moderatoren zu den Veranstaltungsterminen wieder löschen kann. Bin aber kläglich gescheitert. Kann mir noch einmal jemand helfen? 

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    for ii in Veranstaltungstermine do
    delete ii.Veranstaltungsterminmoderation
    end;
    delete Veranstaltungsmoderation

    • Alfred
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Leo, du bist super - vielen Dank. Genau soetwas habe ich gesucht.

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 8Antworten
  • 1987Ansichten
  • 1 Folge bereits