]> git.laktatnebel.de Git - athletik.triathlon-coaching.com.git/commitdiff
DB-Schema erster Entwurf
authorOle B. Rosentreter <ole@laktatnebel.de>
Thu, 14 Aug 2025 08:25:28 +0000 (10:25 +0200)
committerOle B. Rosentreter <ole@laktatnebel.de>
Thu, 14 Aug 2025 08:25:28 +0000 (10:25 +0200)
athletik-db/pom.xml [new file with mode: 0644]
athletik-db/sql/schema.sql [new file with mode: 0644]
athletik-web/pom.xml [new file with mode: 0644]
athletik-web/src/roadtokona_glob_vars.php [new file with mode: 0644]
pom.xml

diff --git a/athletik-db/pom.xml b/athletik-db/pom.xml
new file mode 100644 (file)
index 0000000..90adcbc
--- /dev/null
@@ -0,0 +1,18 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <groupId>com.triathlon-coaching.product</groupId>
+       <artifactId>athletik.athletik-db</artifactId>
+       <version>0.0.1-SNAPSHOT</version>
+       <packaging>pom</packaging>
+
+       <name>${product.artifactId}</name>
+       <description>Athletik Training DB</description>
+
+       <parent>
+               <groupId>de.laktatnebel.maven</groupId>
+               <artifactId>laktatnebelscript</artifactId>
+               <version>2.1.9</version>
+       </parent>
+
+</project>
diff --git a/athletik-db/sql/schema.sql b/athletik-db/sql/schema.sql
new file mode 100644 (file)
index 0000000..9cffbf9
--- /dev/null
@@ -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 (file)
index 0000000..b151804
--- /dev/null
@@ -0,0 +1,18 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <groupId>com.triathlon-coaching.product</groupId>
+       <artifactId>athletik.athletik-web</artifactId>
+       <version>0.0.1-SNAPSHOT</version>
+       <packaging>pom</packaging>
+
+       <name>${product.artifactId}</name>
+       <description>Athletik Training WebUI</description>
+
+       <parent>
+               <groupId>de.laktatnebel.maven</groupId>
+               <artifactId>laktatnebelscript</artifactId>
+               <version>2.1.9</version>
+       </parent>
+
+</project>
diff --git a/athletik-web/src/roadtokona_glob_vars.php b/athletik-web/src/roadtokona_glob_vars.php
new file mode 100644 (file)
index 0000000..f7c88f4
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+
+
+define ("HOST", "localhost");
+define ("SCHEMA", "athletik");
+define ("DB", "sport");
+//define ("USER", "laktatnebel");
+define ("USER", "oleb");
+//define ("PASS", "njThR3G&c9?B7ZpQ");
+define ("PASS", "wpj_9+L6ukX+SN2-");
+
+
+date_default_timezone_set('Europe/Berlin');
+
+?>
diff --git a/pom.xml b/pom.xml
index aa4fe301d29d62f49daa3dd2d0fa4a8368c417a8..6e97c8969839ca77e94799e02ecbf23cd2728c39 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -1,17 +1,42 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
-       <groupId>de.laktatnebel.athletik</groupId>
-       <artifactId>athletik.triathlon-coaching.com</artifactId>
+       <groupId>com.triathlon-coaching.product</groupId>
+       <artifactId>athletik</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>pom</packaging>
 
-       <name>athletik.triathlon-coaching.com</name>
+       <name>${product.artifactId}</name>
+       <description>Athletik Training</description>
 
-       <parent>
-               <groupId>de.laktatnebel.maven</groupId>
-               <artifactId>laktatnebelscript</artifactId>
-               <version>2.1.9</version>
-       </parent>
+       <modules>
+               <module>athletik-web</module>
+               <module>athletik-db</module>
+       </modules>
+
+       <scm>
+               <connection>scm:git:ssh://laktatnebel.de/srv/git/swim.git</connection>
+               <developerConnection>scm:git:ssh://laktatnebel.de/srv/git/swim.git</developerConnection>
+               <tag>HEAD</tag>
+       </scm>
+
+       <distributionManagement>
+               <repository>
+                       <id>laktatnebel.release</id>
+                       <name>Release Repository</name>
+                       <url>file:///home/oleb/.m2/distribution</url>
+               </repository>
+               <snapshotRepository>
+                       <id>laktatnebel.snapshots</id>
+                       <uniqueVersion>false</uniqueVersion>
+                       <name>Snapshot Repository</name>
+                       <url>file:///home/oleb/.m2/distribution</url>
+               </snapshotRepository>
+               <site>
+                       <id>laktatnebel.site</id>
+                       <name>Sites</name>
+                       <url>file:///home/oleb/.m2/site</url>
+               </site>
+       </distributionManagement>
 
 </project>