From: gamesguru Date: Tue, 29 Sep 2020 13:07:25 +0000 (-0400) Subject: add functions and bio data X-Git-Tag: 0.0.0~17 X-Git-Url: https://git.nutra.tk/v1?a=commitdiff_plain;h=2ebf37811e43145c6b73de9400c75bcad56378ec;p=nutratech%2Fnt-sqlite.git add functions and bio data --- diff --git a/docs/nt.svg b/docs/nt.svg index 992660a..ae3aa77 100644 --- a/docs/nt.svg +++ b/docs/nt.svg @@ -4,294 +4,311 @@ - - + + undefined - -nt.sqlite + +nt.sqlite version - -version - -id* -integer -version -text -created -date -notes -text + +version + +id* +integer +version +text +created +date +notes +text bmr_eqs - -bmr_eqs - -id* -integer -bmr_eq -text + +bmr_eqs + +id* +integer +bmr_eq +text bf_eqs - -bf_eqs - -id* -integer -bf_eq -text + +bf_eqs + +id* +integer +bf_eq +text users - -users - -id* -integer -name -text -guid -text -created -int -eula -int -gender -text -dob -date -act_lvl -int -goal_wt -real -goal_bf -real -bmr_id -int -bf_id -int + +users + +id* +integer +name +text +guid +text +created +int +eula +int +gender +text +dob +date +act_lvl +int +goal_wt +real +goal_bf +real +bmr_id +int +bf_id +int users->bmr_eqs - - + + users->bf_eqs - - + + biometrics - -biometrics - -id* -integer -name -text -unit -text -created -int + +biometrics + +id* +integer +name +text +unit +text +created +int biometric_log - -biometric_log - -id* -integer -guid -text -user_id -int -date -date -biometric_id -int -value -real + +biometric_log + +id* +integer +guid +text +user_id +int +date +int +notes +text - + biometric_log->users - - + + - - -biometric_log->biometrics - - + + +bio_log_entry + +bio_log_entry + +log_id* +int +biometric_id* +int +value +real + + + +bio_log_entry->biometrics + + + + + +bio_log_entry->biometric_log + + - + recipes - -recipes - -id* -integer -guid -text -created -int -name -text + +recipes + +id* +integer +guid +text +created +int +name +text - + recipe_dat - -recipe_dat - -recipe_id -int -food_id -int -grams -real -notes -text + +recipe_dat + +recipe_id* +int +food_id* +int +grams +real +notes +text - + recipe_dat->recipes - - + + - + meal_names - -meal_names - -id* -integer -name -text + +meal_names + +id* +integer +name +text - + food_log - -food_log - -id* -integer -guid -text -user_id -int -date -date -meal_id -int -grams -real -food_id -int + +food_log + +id* +integer +guid +text +user_id +int +date +date +meal_id +int +grams +real +food_id +int - + food_log->users - - + + - + food_log->meal_names - - + + - + recipe_log - -recipe_log - -id* -integer -guid -text -user_id -int -date -date -meal_id -int -grams -real -recipe_id -int + +recipe_log + +id* +integer +guid +text +user_id +int +date +date +meal_id +int +grams +real +recipe_id +int - + recipe_log->users - - + + - + recipe_log->recipes - - + + - + recipe_log->meal_names - - + + - + rda - -rda - -user_id -int -nutr_id -int -rda -real -synced -int + +rda + +user_id* +int +nutr_id* +int +rda +real +synced +int - + rda->users - - + + - + sync_data - -sync_data - -id* -integer -tablename -text -guid -text -constraint -text -action -text + +sync_data + +id* +integer +tablename +text +guid +text +constraint +text +action +text diff --git a/sql/data/bio_log_entry.csv b/sql/data/bio_log_entry.csv new file mode 100644 index 0000000..d488584 --- /dev/null +++ b/sql/data/bio_log_entry.csv @@ -0,0 +1,123 @@ +log_id,biometric_id,value +1,22,61 +1,23,100 +1,24,54 +2,22,68 +2,23,93 +2,24,54 +3,22,62 +3,23,103 +3,24,50 +4,22,66 +4,23,99 +4,24,58 +5,22,82 +5,23,115 +5,24,63 +6,22,0 +6,23,104 +6,24,59 +7,22,70 +7,23,108 +7,24,63 +8,22,59 +8,23,112 +8,24,61 +9,22,62 +9,23,108 +9,24,65 +10,2,67 +10,5, +10,6, +10,7, +10,8, +10,9, +10,10, +10,11, +10,12, +10,13, +10,14, +10,15, +10,16, +10,17, +10,18, +10,19, +10,20, +11,22,53 +11,23,91 +11,24,60 +12,22,56 +12,23,101 +12,24,63 +13,22,64 +13,23,105 +13,24,62 +14,2,8.71 +14,5, +14,6, +14,9, +14,10, +14,12, +15,2,74 +15,5, +15,6, +15,7, +15,8, +15,9, +15,10, +15,11, +15,12, +15,13, +15,14, +15,15, +15,16, +15,17, +15,18, +15,19, +15,20, +16,22,59 +16,23,103 +16,24,63 +17,22,53 +17,23,107 +17,24,66 +18,2,73 +18,14,18 +18,15,26 +18,16,15 +19,2,7.26 +20,22,61 +20,23,103 +20,24,65 +21,22,97 +21,23,110 +21,24,71 +22,22,62 +22,23,106 +22,24,68 +23,22,59 +23,23,110 +23,24,66 +24,22,59 +24,23,92 +24,24,58 +25,2,70 +26,2,65.4 +27,2,71 +28,2,67.6 +29,2,66 +30,2,67.2 +31,22,58 +31,23,102 +31,24,61 +32,22,83 +32,23,113 +32,24,64 +33,22,78 +33,23,105 +33,24,70 +34,2,69.5 +35,2,68.4 +36,22,66 +36,23,103 +36,24,63 diff --git a/sql/data/biometric_log.csv b/sql/data/biometric_log.csv new file mode 100644 index 0000000..c1c0066 --- /dev/null +++ b/sql/data/biometric_log.csv @@ -0,0 +1,37 @@ +id,guid,user_id,date,notes +1,7417256ddb67b9094955de0d653e4b91,1,Sun 28 Jun 2020 02:07:01 PM EDT,exercise +2,b6dc44db43f823a96bf14d378c4a6e10,2,Sun 28 Jun 2020 02:07:01 PM EDT,exercise +3,52614b2f5118caa7e1c33f5306ec7eee,1,Sun 28 Jun 2020 02:38:20 PM EDT, +4,ad4761f8458430bcf894919ffa0a60c8,2,Sun 28 Jun 2020 02:38:20 PM EDT, +5,ddeda6b7aa0990902c0ff7ca8868c298,1,Sun 28 Jun 2020 10:05:26 PM EDT,exercise +6,a8093d02eab44586e997b1c6f06024a5,2,Thu 02 Jul 2020 12:12:54 PM EDT,doctor's office +7,3b621d8701bc0662d8a99c8e255ae2df,1,Sat 04 Jul 2020 03:50:13 PM EDT, +8,4ff118cdb2f150c6dcaf63ea822133ee,2,Sat 04 Jul 2020 03:54:27 PM EDT, +9,b12d98910582378fd0bfe513db27dba2,2,Sun 05 Jul 2020 01:30:44 PM EDT,no THC +10,384729fed3c44775b5a6b83d9df441c1,1,Mon 06 Jul 2020 06:54:49 AM EDT, +11,a8e6660500e975e6974dc5e5b409674e,2,Sun 12 Jul 2020 12:29:11 PM EDT,THC +12,89d85a4c81b19ccc5b956574675e303b,2,Sun 12 Jul 2020 02:44:25 PM EDT,THC +13,64f6ac68c4406082c2bd82f868b4e6ad,1,Sun 12 Jul 2020 02:44:25 PM EDT,THC +14,d84f359570164f6f634c1f1ee428bf3f,3,Mon 13 Jul 2020 03:30:46 PM EDT, +15,e43c46b7905f0f43a93a5a32caaf1350,2,Fri 17 Jul 2020 02:02:12 PM EDT, +16,809ed86cf5f9ca733de44bd4dcafaa34,2,Fri 17 Jul 2020 03:14:37 PM EDT,THC +17,0c025c05a37fa891ac922990b915008a,1,Fri 17 Jul 2020 03:14:37 PM EDT, +18,4b7d0b88acd2b28555529185645c022e,2,Sat 08 Aug 2020 01:53:25 PM EDT, +19,da611fdf349a36fbfabdc39f0b5dd511,3,Thu 27 Aug 2020 12:44:37 PM EDT, +20,adc9cebc6ce0fe5caba725a20eaf3cf7,2,Fri 28 Aug 2020 03:40:56 PM EDT, +21,42c2437c8a7d8c6c9df58b874b188bba,1,Fri 28 Aug 2020 03:40:56 PM EDT,1st dabs/2 weeks +22,7bde0797bc4349091aa0c7c72e09abd2,2,Sun 06 Sep 2020 11:49:47 AM EDT, +23,b4b5b2a3c5185f787d428db4ae9d4884,1,Sun 06 Sep 2020 11:53:21 AM EDT, +24,c04eefe3c4c6e167d7bba4bb77d11f60,2,Sat 12 Sep 2020 12:15:53 PM EDT, +25,e866e51372616e77d110889513ab79e8,2,Sun 06 Sep 2020, +26,22e182dab0267ceecf537f10d76ccc7f,1,Sun 06 Sep 2020, +27,2881dc500b6f205b45da19fd60e6464b,2,Sat 12 Sep 2020, +28,360481648b356ac00ec2227805a02a5b,1,Sat 12 Sep 2020, +29,f3bf14d7924cd164be8e3cbc56aa795d,1,Sun 13 Sep 2020, +30,616bca3f62976021cc3b77e91a32de3b,1,Mon 14 Sep 2020, +31,60a75a93acb0cf77e9f2fe1a05e4d19d,1,Fri 18 Sep 2020 09:04:38 PM EDT,exercise +32,f4cf78ea8e2c7a03892e4b0268481b59,2,Thu 24 Sep 2020 05:05:51 PM EDT,illness +33,63239cac4d86f57a69cf9a9c7799a13c,1,Thu 24 Sep 2020 05:05:51 PM EDT, +34,0ebe7d5f9214f2e62c2952696caaadd9,2,Thu 24 Sep 2020, +35,67e1a2d244afb9924d1999d792264109,2,Sat 26 Sep 2020, +36,6f61f3010e4cae1e4d46cc85302ab4d6,2,Sat 26 Sep 2020 11:54:17 AM EDT, diff --git a/sql/functions.sql b/sql/functions.sql new file mode 100644 index 0000000..6a26927 --- /dev/null +++ b/sql/functions.sql @@ -0,0 +1,105 @@ +-------------------------------- +-- Weight +-------------------------------- + +SELECT + date, + users.name, + notes, + ( + SELECT + value + FROM + bio_log_entry + WHERE + biometric_id = 2 + AND log_id = biometric_log.id) AS weight +FROM + biometric_log + INNER JOIN users ON user_id = users.id + INNER JOIN bio_log_entry ON biometric_id = 2 + AND log_id = biometric_log.id +WHERE + users.name = 'Mark'; + +-------------------------------- +-- Pulse and blood pressure +-------------------------------- + +SELECT + date, + users.name, + ( + SELECT + value + FROM + bio_log_entry + WHERE + biometric_id = 23 + AND log_id = biometric_log.id) AS sys, + ( + SELECT + value + FROM + bio_log_entry + WHERE + biometric_id = 24 + AND log_id = biometric_log.id) AS dia, + ( + SELECT + value + FROM + bio_log_entry + WHERE + biometric_id = 22 + AND log_id = biometric_log.id) AS pulse, + notes +FROM + biometric_log + INNER JOIN users ON user_id = users.id; + +-- LEFT JOIN bio_log_entry ON biometric_id IN (22,23,24); +SELECT + date, + users.name, + notes, + ( + SELECT + ( + SELECT + value + FROM + bio_log_entry + WHERE + biometric_id = 23 + AND log_id = biometric_log.id) || '/' || ( + SELECT + value + FROM + bio_log_entry + WHERE + biometric_id = 24 + AND log_id = biometric_log.id) || ' (' || ( + SELECT + value + FROM + bio_log_entry + WHERE + biometric_id = 22 + AND log_id = biometric_log.id) || ' bpm)') AS summary + FROM + biometric_log + INNER JOIN users ON user_id = users.id; + +SELECT + users.name, + date, + notes, + biometrics.name, + bio_log_entry.value +FROM + biometric_log + INNER JOIN users ON user_id = users.id + INNER JOIN bio_log_entry ON log_id = biometric_log.id + INNER JOIN biometrics ON biometric_id = biometrics.id; + diff --git a/sql/import.sql b/sql/import.sql index ea61145..46733ad 100644 --- a/sql/import.sql +++ b/sql/import.sql @@ -29,5 +29,8 @@ .import '| tail -n +2 ./data/food_log.csv' food_log +.import '| tail -n +2 ./data/biometric_log.csv' biometric_log +.import '| tail -n +2 ./data/bio_log_entry.csv' bio_log_entry + .header on .mode column diff --git a/sql/tables.sql b/sql/tables.sql index f021288..08fb592 100644 --- a/sql/tables.sql +++ b/sql/tables.sql @@ -76,13 +76,20 @@ CREATE TABLE biometric_log ( id integer PRIMARY KEY AUTOINCREMENT, guid text NOT NULL DEFAULT (lower(hex (randomblob (16)))) UNIQUE, user_id int NOT NULL, - date date DEFAULT CURRENT_DATE, + date int DEFAULT (strftime ('%s', 'now')), + notes text, + FOREIGN KEY (user_id) REFERENCES users (id) ON UPDATE CASCADE +); + + +CREATE TABLE bio_log_entry ( + log_id int NOT NULL, biometric_id int NOT NULL, value real NOT NULL, - FOREIGN KEY (user_id) REFERENCES users (id) ON UPDATE CASCADE, + PRIMARY KEY (log_id, biometric_id), + FOREIGN KEY (log_id) REFERENCES biometric_log (id) ON UPDATE CASCADE, FOREIGN KEY (biometric_id) REFERENCES biometrics (id) ON UPDATE CASCADE ); - -- -------------------------------- -- Recipes @@ -101,7 +108,7 @@ CREATE TABLE recipe_dat ( food_id int NOT NULL, grams real NOT NULL, notes text, - UNIQUE (recipe_id, food_id), + PRIMARY KEY (recipe_id, food_id), FOREIGN KEY (recipe_id) REFERENCES recipes (id) ON UPDATE CASCADE ); @@ -152,7 +159,7 @@ CREATE TABLE rda ( nutr_id int NOT NULL, rda real NOT NULL, synced int DEFAULT 0, - UNIQUE (user_id, nutr_id), + PRIMARY KEY (user_id, nutr_id), FOREIGN KEY (user_id) REFERENCES users (id) ON UPDATE CASCADE );