Schema für Trainingsplan

motivation

Neuer Benutzer
Beiträge
4
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
    12,8 KB · Aufrufe: 20
Werbung:
Habe die Tabelle mal in Excel skizziert,

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.
 
Solltest Du der Meinung sein, das alles in einer Tabelle abbilden zu können, irrst Du Dich.

Nene, hatte ich ja auch geschrieben:
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.

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.
 
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.
 
Werbung:
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

  • schema.png
    schema.png
    49,3 KB · Aufrufe: 17
Zurück
Oben