From: Ole B. Rosentreter Date: Fri, 11 Jul 2025 10:41:03 +0000 (+0200) Subject: DB Schema, DB-Import und erste Daten X-Git-Url: https://git.laktatnebel.de/?a=commitdiff_plain;h=b2ac4aec404e11cbfc77ff0c5c6528b45649ae16;p=roadtokona.triathlon-coaching.com.git DB Schema, DB-Import und erste Daten --- diff --git a/pom.xml b/pom.xml index 934f6cb..9825fde 100644 --- a/pom.xml +++ b/pom.xml @@ -1,17 +1,42 @@ - 4.0.0 de.laktatnebel.roadtokona - roadtokona.triathlon-coaching.com - 0.0.1-SNAPSHOT - zip + roadtokona + pom roadtokona.triathlon-coaching.com + RoadToKona DB and Calculator - - de.laktatnebel.maven - laktatnebelscript - 2.1.9 - + + roadtokona-web + roadtokona-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 + + diff --git a/roadtokona-db/pom.xml b/roadtokona-db/pom.xml new file mode 100644 index 0000000..916310e --- /dev/null +++ b/roadtokona-db/pom.xml @@ -0,0 +1,18 @@ + + 4.0.0 + de.laktatnebel.roadtokona + roadtokona-db + 0.0.1-SNAPSHOT + pom + + ${product.artifactId} + RoadToKona DB + + + de.laktatnebel.maven + laktatnebelscript + 2.1.9 + + + diff --git a/roadtokona-db/sql/schema.sql b/roadtokona-db/sql/schema.sql new file mode 100644 index 0000000..102a4bf --- /dev/null +++ b/roadtokona-db/sql/schema.sql @@ -0,0 +1,126 @@ + +CREATE SCHEMA roadtokona; + +CREATE TABLE roadtokona.division ( + division_id serial NOT NULL, + division_gender char NOT NULL DEFAULT 'x', + division_age int2 NOT NULL DEFAULT 0, + CONSTRAINT division_pkey PRIMARY KEY (division_id) +); + +CREATE TABLE roadtokona.race ( + race_id serial NOT NULL, + race_date date, + race_location varchar (64), + race_slots int2 NOT NULL DEFAULT 10000, + CONSTRAINT race_pkey PRIMARY KEY (race_id) +); + +CREATE TABLE roadtokona.factor ( + fk_division int4 NOT NULL DEFAULT 0, + factor_value decimal NOT NULL DEFAULT 1, + CONSTRAINT factor_division_fkey FOREIGN KEY (fk_division) REFERENCES roadtokona.division(division_id) ON UPDATE CASCADE ON DELETE cascade +); + +CREATE TABLE roadtokona.result ( + fk_division int4 NOT NULL DEFAULT 0, + fk_race int4 NOT NULL DEFAULT 0, + result_finish time DEFAULT NULL, + CONSTRAINT result_division_fkey FOREIGN KEY (fk_division) REFERENCES roadtokona.division(division_id) ON UPDATE CASCADE ON DELETE cascade, + CONSTRAINT result_race_fkey FOREIGN KEY (fk_race) REFERENCES roadtokona.race(race_id) ON UPDATE CASCADE ON DELETE cascade +); + +CREATE VIEW roadtokona.view_result_normalized AS +SELECT + race_date, + race_location, + division_gender, + division_age, + (select factor_value from roadtokona.factor where roadtokona.factor.fk_division = re.fk_division), + result_finish, + result_finish * (select factor_value from roadtokona.factor where roadtokona.factor.fk_division = re.fk_division) as result_normalized +FROM + roadtokona.result re +JOIN roadtokona.race ra ON (re.fk_race = ra.race_id) +JOIN roadtokona.division di ON (re.fk_division = di.division_id); + +CREATE VIEW roadtokona.view_division_factor AS +SELECT + division_gender, + division_age, + factor_value +FROM + roadtokona.factor fa +JOIN roadtokona.division di ON (fa.fk_division = di.division_id); + +insert into roadtokona.division values +(default, 'M', 18), +(default, 'F', 18), +(default, 'M', 25), +(default, 'F', 25), +(default, 'M', 30), +(default, 'F', 30), +(default, 'M', 35), +(default, 'F', 35), +(default, 'M', 40), +(default, 'F', 40), +(default, 'M', 45), +(default, 'F', 45), +(default, 'M', 50), +(default, 'F', 50), +(default, 'M', 55), +(default, 'F', 55), +(default, 'M', 60), +(default, 'F', 60), +(default, 'M', 65), +(default, 'F', 65), +(default, 'M', 70), +(default, 'F', 70), +(default, 'M', 75), +(default, 'F', 75), +(default, 'M', 80), +(default, 'F', 80), +(default, 'M', 85), +(default, 'F', 85) +; + +insert into roadtokona.factor values +((select division_id FROM roadtokona.division where division_gender='M' and division_age=18), 0.9698), +((select division_id FROM roadtokona.division where division_gender='M' and division_age=25), 0.9921), +((select division_id FROM roadtokona.division where division_gender='M' and division_age=30), 1.0000), +((select division_id FROM roadtokona.division where division_gender='M' and division_age=35), 0.9895), +((select division_id FROM roadtokona.division where division_gender='M' and division_age=40), 0.9683), +((select division_id FROM roadtokona.division where division_gender='M' and division_age=45), 0.9401), +((select division_id FROM roadtokona.division where division_gender='M' and division_age=50), 0.9002), +((select division_id FROM roadtokona.division where division_gender='M' and division_age=55), 0.8667), +((select division_id FROM roadtokona.division where division_gender='M' and division_age=60), 0.8262), +((select division_id FROM roadtokona.division where division_gender='M' and division_age=65), 0.7552), +((select division_id FROM roadtokona.division where division_gender='M' and division_age=70), 0.6876), +((select division_id FROM roadtokona.division where division_gender='M' and division_age=75), 0.6768), +((select division_id FROM roadtokona.division where division_gender='M' and division_age=80), 0.5555), +((select division_id FROM roadtokona.division where division_gender='M' and division_age=85), 0.5416), +((select division_id FROM roadtokona.division where division_gender='F' and division_age=18), 0.8567), +((select division_id FROM roadtokona.division where division_gender='F' and division_age=25), 0.8961), +((select division_id FROM roadtokona.division where division_gender='F' and division_age=30), 0.8977), +((select division_id FROM roadtokona.division where division_gender='F' and division_age=35), 0.8866), +((select division_id FROM roadtokona.division where division_gender='F' and division_age=40), 0.8707), +((select division_id FROM roadtokona.division where division_gender='F' and division_age=45), 0.8501), +((select division_id FROM roadtokona.division where division_gender='F' and division_age=50), 0.8125), +((select division_id FROM roadtokona.division where division_gender='F' and division_age=55), 0.7778), +((select division_id FROM roadtokona.division where division_gender='F' and division_age=60), 0.7218), +((select division_id FROM roadtokona.division where division_gender='F' and division_age=65), 0.6828), +((select division_id FROM roadtokona.division where division_gender='F' and division_age=70), 0.6439), +((select division_id FROM roadtokona.division where division_gender='F' and division_age=75), 0.5521) +; + +--ALTER SCHEMA roadtokona OWNER TO laktatnebel; + +--ALTER TABLE roadtokona.division OWNER TO laktatnebel; +--ALTER TABLE roadtokona.race OWNER TO laktatnebel; +--ALTER TABLE roadtokona.factor OWNER TO laktatnebel; +--ALTER TABLE roadtokona.result OWNER TO laktatnebel; +--ALTER TABLE roadtokona.view_result_normalized OWNER TO laktatnebel; + +--GRANT ALL ON SCHEMA roadtokona TO oleb; + + diff --git a/roadtokona-web/pom.xml b/roadtokona-web/pom.xml new file mode 100644 index 0000000..5802252 --- /dev/null +++ b/roadtokona-web/pom.xml @@ -0,0 +1,18 @@ + + 4.0.0 + de.laktatnebel.roadtokona + roadtokona-web + 0.0.1-SNAPSHOT + pom + + ${product.artifactId} + RoadToKona WebUI + + + de.laktatnebel.maven + laktatnebelscript + 2.1.9 + + + diff --git a/roadtokona-web/src/roadtokona_glob_vars.php b/roadtokona-web/src/roadtokona_glob_vars.php new file mode 100644 index 0000000..201995e --- /dev/null +++ b/roadtokona-web/src/roadtokona_glob_vars.php @@ -0,0 +1,15 @@ +