From: Ole B. Rosentreter Date: Thu, 14 Aug 2025 08:25:28 +0000 (+0200) Subject: DB-Schema erster Entwurf X-Git-Url: https://git.laktatnebel.de/?a=commitdiff_plain;h=091ee7a7c7c5d14019fe776aba3cd19d1e37df31;p=athletik.triathlon-coaching.com.git DB-Schema erster Entwurf --- diff --git a/athletik-db/pom.xml b/athletik-db/pom.xml new file mode 100644 index 0000000..90adcbc --- /dev/null +++ b/athletik-db/pom.xml @@ -0,0 +1,18 @@ + + 4.0.0 + com.triathlon-coaching.product + athletik.athletik-db + 0.0.1-SNAPSHOT + pom + + ${product.artifactId} + Athletik Training DB + + + de.laktatnebel.maven + laktatnebelscript + 2.1.9 + + + diff --git a/athletik-db/sql/schema.sql b/athletik-db/sql/schema.sql new file mode 100644 index 0000000..9cffbf9 --- /dev/null +++ b/athletik-db/sql/schema.sql @@ -0,0 +1,145 @@ + +CREATE SCHEMA athletik; + +-- Athleten +CREATE TABLE athletik.users ( + id SERIAL not null, + username varchar not null, + name_user varchar not null, + email varchar not null, + pass varchar not null +); + +ALTER TABLE athletik.users ADD CONSTRAINT users_pkey PRIMARY KEY (id); +ALTER TABLE athletik.users ADD CONSTRAINT users_ukey UNIQUE (username); + +-- Geräte +CREATE TABLE athletik.tools ( + id SERIAL not null, + toolname_english varchar not null, + toolname_german varchar not null, + min_weight int4 not null default 0, + steps_weight int4 not null default 0, + description varchar default null +); + +ALTER TABLE athletik.tools ADD CONSTRAINT tools_pkey PRIMARY KEY (id); + +-- Muskeln +CREATE TABLE athletik.muscle ( + id SERIAL not null, + name_latin varchar not null, + name_english varchar default null, + name_german varchar default null, + movement varchar not null +); + +ALTER TABLE athletik.muscle ADD CONSTRAINT muscle_pkey PRIMARY KEY (id); + +-- Übungen +CREATE TABLE athletik.exercise ( + id SERIAL not null, + name_english varchar not null, + description_english varchar default null, + name_german varchar default null, + description_german varchar default null, + url_video varchar default null, + + fk_tool int4 not null +); + +ALTER TABLE athletik.exercise ADD CONSTRAINT exercise_pkey PRIMARY KEY (id); +ALTER TABLE athletik.exercise ADD CONSTRAINT exercise_tool_fkey FOREIGN KEY (fk_tool) REFERENCES athletik.tools(id) ON UPDATE CASCADE ON DELETE CASCADE; + +-- Test +CREATE TABLE athletik.test ( + fk_user int4 not null, + fk_exercise int4 not null, + testdate timestamp not null default now(), + fmax decimal default 0 +); + +ALTER TABLE athletik.test ADD CONSTRAINT test_ukey UNIQUE (fk_exercise, fk_user, testdate); + +ALTER TABLE athletik.test ADD CONSTRAINT test_exercise_fkey FOREIGN KEY (fk_exercise) REFERENCES athletik.exercise(id) ON UPDATE CASCADE ON DELETE CASCADE; +ALTER TABLE athletik.test ADD CONSTRAINT test_user_fkey FOREIGN KEY (fk_user) REFERENCES athletik.users(id) ON UPDATE CASCADE ON DELETE CASCADE; + +-- Protokoll +CREATE TABLE athletik.protokoll ( + fk_user int4 not null, + fk_exercise int4 not null, + trainingdate timestamp not null default now(), + number_of_set int4 default 1, + repetitions int4 default 1, + weight int4 default 0 +); + +ALTER TABLE athletik.protokoll ADD CONSTRAINT protokoll_ukey UNIQUE (fk_exercise, fk_user, trainingdate, number_of_set); + +ALTER TABLE athletik.protokoll ADD CONSTRAINT protokoll_exercise_fkey FOREIGN KEY (fk_exercise) REFERENCES athletik.exercise(id) ON UPDATE CASCADE ON DELETE CASCADE; +ALTER TABLE athletik.protokoll ADD CONSTRAINT protokoll_user_fkey FOREIGN KEY (fk_user) REFERENCES athletik.users(id) ON UPDATE CASCADE ON DELETE CASCADE; + +-- Trainingspläne +CREATE TABLE athletik.training ( + id SERIAL not null, + title varchar not null, + description text default null, + fk_user int4 not null, + fk_exercise int4 not null, + repetitions_of_set int4 default 1, + repetitions int4 default 1, + factor_of_fmax int4 default 0, + created timestamp not null default now(), + valid_since timestamp not null default now() +); + +ALTER TABLE athletik.training ADD CONSTRAINT training_ukey UNIQUE (fk_exercise, fk_user, repetitions_of_set, repetitions, factor_of_fmax); + +ALTER TABLE athletik.training ADD CONSTRAINT training_exercise_fkey FOREIGN KEY (fk_exercise) REFERENCES athletik.exercise(id) ON UPDATE CASCADE ON DELETE CASCADE; +ALTER TABLE athletik.training ADD CONSTRAINT training_user_fkey FOREIGN KEY (fk_user) REFERENCES athletik.users(id) ON UPDATE CASCADE ON DELETE CASCADE; + +-- Log +CREATE TABLE athletik.sqllog ( + id SERIAL not null, + created timestamp not null default now(), + sql text not null, + fk_user int4 not null, + sid text not null, + script varchar not null +); + +ALTER TABLE athletik.sqllog ADD CONSTRAINT sqllog_pkey PRIMARY KEY (id); + +ALTER TABLE athletik.sqllog ADD CONSTRAINT sqllog_user_fkey FOREIGN KEY (fk_user) REFERENCES athletik.users(id) ON UPDATE CASCADE ON DELETE CASCADE; + + + + +-- ALTER SCHEMA athletik OWNER TO laktatnebel; + +-- ALTER TABLE athletik.users OWNER TO laktatnebel; +-- ALTER TABLE athletik.tools OWNER TO laktatnebel; +-- ALTER TABLE athletik.muscle OWNER TO laktatnebel; +-- ALTER TABLE athletik.exercise OWNER TO laktatnebel; +-- ALTER TABLE athletik.test OWNER TO laktatnebel; +-- ALTER TABLE athletik.protokoll OWNER TO laktatnebel; +-- ALTER TABLE athletik.training OWNER TO laktatnebel; +-- ALTER TABLE athletik.sqllog OWNER TO laktatnebel; + +-- GRANT ALL ON SCHEMA athletik TO laktatnebel; + + +ALTER SCHEMA athletik OWNER TO oleb; + +ALTER TABLE athletik.users OWNER TO oleb; +ALTER TABLE athletik.tools OWNER TO oleb; +ALTER TABLE athletik.muscle OWNER TO oleb; +ALTER TABLE athletik.exercise OWNER TO oleb; +ALTER TABLE athletik.test OWNER TO oleb; +ALTER TABLE athletik.protokoll OWNER TO oleb; +ALTER TABLE athletik.training OWNER TO oleb; +ALTER TABLE athletik.sqllog OWNER TO oleb; + +GRANT ALL ON SCHEMA athletik TO oleb; + + diff --git a/athletik-web/pom.xml b/athletik-web/pom.xml new file mode 100644 index 0000000..b151804 --- /dev/null +++ b/athletik-web/pom.xml @@ -0,0 +1,18 @@ + + 4.0.0 + com.triathlon-coaching.product + athletik.athletik-web + 0.0.1-SNAPSHOT + pom + + ${product.artifactId} + Athletik Training WebUI + + + de.laktatnebel.maven + laktatnebelscript + 2.1.9 + + + diff --git a/athletik-web/src/roadtokona_glob_vars.php b/athletik-web/src/roadtokona_glob_vars.php new file mode 100644 index 0000000..f7c88f4 --- /dev/null +++ b/athletik-web/src/roadtokona_glob_vars.php @@ -0,0 +1,15 @@ + diff --git a/pom.xml b/pom.xml index aa4fe30..6e97c89 100644 --- a/pom.xml +++ b/pom.xml @@ -1,17 +1,42 @@ 4.0.0 - de.laktatnebel.athletik - athletik.triathlon-coaching.com + com.triathlon-coaching.product + athletik 0.0.1-SNAPSHOT pom - athletik.triathlon-coaching.com + ${product.artifactId} + Athletik Training - - de.laktatnebel.maven - laktatnebelscript - 2.1.9 - + + athletik-web + athletik-db + + + + scm:git:ssh://laktatnebel.de/srv/git/swim.git + scm:git:ssh://laktatnebel.de/srv/git/swim.git + HEAD + + + + + laktatnebel.release + Release Repository + file:///home/oleb/.m2/distribution + + + laktatnebel.snapshots + false + Snapshot Repository + file:///home/oleb/.m2/distribution + + + laktatnebel.site + Sites + file:///home/oleb/.m2/site + +