Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Schema für Trainingsplan

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von motivation, 1 Mai 2017.

  1. motivation

    motivation Neuer Benutzer

    Hallo zusammen,
    ich hoffe ihr könnt mir bei meinem Vorhaben helfen.
    Ich würde gerne meine Trainingspläne in einer Webapplikation verwalten (vermutlich mit MariaDB). Hierfür fehlt mir allerdings noch das richtige DB-Schema. Habe die Tabelle mal in Excel skizziert, damit ihr eine Vorstellung habt (siehe Anhang).

    Meiner Meinung nach gilt:
    • Jeder Trainingsplan hat 1 - n Übungen
    • Jede Übung hat Wiederholungen [Typ: integer] und eventuell auch eine Gewichtsangabe [Typ: integer] (siehe "Crunches", die haben z.B. kein Gewicht)
    • Jeder Trainingsplan hat 1 - n Termine
    • Jeder Termin hat 1 - n Sätze für jede Übung des Plans
    • Zusätzlich würde ich es gerne gleich so gestalten, dass ich später ggf. mehrere User verwalten kann, d.h. dann also: Jeder User hat n Trainingspläne

    Bin mir relativ sicher, dass ich Tabellen für User, Trainingspläne und Übungen brauche. Wie ich das jetzt aber mit Terminen und Sätzen kombinieren soll, weiß ich leider nicht so wirklich. :oops:

    Könntet ihr mir da bitte helfen? Nachfragen bei Bedarf erwünscht! :)

    Vielen Dank!
     

    Anhänge:

    • plan.png
      plan.png
      Dateigröße:
      12,8 KB
      Aufrufe:
      16
  2. akretschmer

    akretschmer Datenbank-Guru

    Solltest Du der Meinung sein, das alles in einer Tabelle abbilden zu können, irrst Du Dich.

    Ansonsten denke ich, daß Du Dich mit Normalisierung beschäftigen solltest, und daß Du hier eher nicht damit rechnen kannst, eine fertige Lösung und auch kein fertiges Tabellenschema zu bekommen. Wenn Du zeigst, was konkret Du für Tabellen planst, können wir aber evtl. helfen, die gröbsten Fehler zu vermeiden.
     
  3. drdimitri

    drdimitri Datenbank-Guru

    Wie sieht denn die fachliche Anforderung aus? Ohne die kann man kein passendes ER Modell erstellen.
     
  4. motivation

    motivation Neuer Benutzer

    Nene, hatte ich ja auch geschrieben:
    Wie verknüpfe ich z.B. am geschicktesten die Termine mit den Übungen? Ich werde ja eine Tabelle mit den Trainingsplänen brauchen, die mit einer Tabelle für User verknüpft wird. Nun muss ich dort aber gleichzeitig die Termine & die Übungen berücksichtigen, leider weiß ich da nicht weiter.

    @drdimitri: Welche Infos bzgl. "fachliche Anforderung" fehlen denn? Sorry, mit dem Begriff alleine kann ich noch nichts anfangen.
     
  5. drdimitri

    drdimitri Datenbank-Guru

    Wie lautet denn die Aufgabenstellung?
     
  6. akretschmer

    akretschmer Datenbank-Guru

    mal grob (und vor dem ersten Kaffee) eine Tabellenstruktur:

    Code:
    test=# create table t_user(id int primary key, name text);
    CREATE TABLE
    test=*# create table t_uebung(id int primary key, name text, wiederholungen int, weitere_daten jsonb);
    CREATE TABLE
    test=*# create table t_trainingsplan(id int primary key, id_user int references t_user, datum date);
    CREATE TABLE
    test=*# create table t_training_uebung(id int primary key, id_training int references t_trainingsplan, id_uebung int references t_uebung, dauer interval, bemerkung jsonb);
    CREATE TABLE
    test=*#
    
    t_user enthält die Daten Deiner User, t_uebung beschreibt die einzelnen Übungen, inklusive, wie oft diese gemacht werden müssen.

    t_trainingsplan und t_uebung sind dann die einzelnen Trainingstage, daher in der ersten das Datum und auch die Verbindung zum User, in der zweiten Tabelle dann wieder ein FK zum Training (gehört also zu diesem Traingstag), welche Übung gemacht wurde (mit FK auf die definierten Übungen), dazu vielleicht noch die Dauer, wie lange diese Übung gemacht wurde, und bei Bedarf noch weitere Bemerkungen - mal als JSONB-Dokument.

    Damit kannst Du dann auch Abfragen, welche Übungen welcher User schon gemacht hat und ob er alle erforderlichen Wiederholungen zu dieser Übung schon absolviert hat etc.


    Ist nur ein ganz grobes Gerüst, aber so in etwas könnte man es aufziehen.
     
    motivation gefällt das.
  7. motivation

    motivation Neuer Benutzer

    Danke, ich nehme das mal als Grundlage und melde mich ggf. wieder. :)
     
  8. motivation

    motivation Neuer Benutzer

    Hallo nochmal,
    im Anhang findet ihr jetzt mal ein Schema von mir. Meint ihr ich kann damit sinnvoll die im Beitrag 1 beschriebene Tabelle umsetzen oder sind grobe Schnitzer drin?

    Jeder User hat Trainingspläne (Beitrag 1 zeigt einen beispielhaft). "exercise2date" soll als Verknüpfung von Übungen, Sätzen und dem Datum dienen.
    Die Sätze bestehen dann widerum aus Wiederholungen (reps) und Gewicht (weight).
     

    Anhänge:

Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden