From e54cb396dde73c365984ad3689450081c79c2bcc Mon Sep 17 00:00:00 2001 From: Sara <sarasdj@stud.ntnu.no> Date: Tue, 16 Apr 2024 13:09:43 +0200 Subject: [PATCH] update: db schema and data --- server/database/icedb | Bin 49152 -> 36864 bytes server/database/schema.sql | 69 +++++++++++++++++++++---------------- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/server/database/icedb b/server/database/icedb index 21581f431073869d4d23a0682bd4fe2bfd994a8f..182a178f4d22ecf48a1cb1e9354b9a38b22e417f 100644 GIT binary patch literal 36864 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 C0!RP= literal 49152 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 Ck#%zb diff --git a/server/database/schema.sql b/server/database/schema.sql index 39daec0a..906cd02f 100644 --- a/server/database/schema.sql +++ b/server/database/schema.sql @@ -12,54 +12,63 @@ CREATE TABLE Sensor ( -- Measurement taken at a given time CREATE TABLE Measurement ( - MeasurementID INT PRIMARY KEY, + MeasurementID INT NOT NULL, SensorID INT NOT NULL, TimeMeasured DATETIME NOT NULL, WaterBodyName TEXT NOT NULL, CenterLat FLOAT NOT NULL, CenterLon FLOAT NOT NULL, - WholeAverageThickness FLOAT NOT NULL, FOREIGN KEY (SensorID) REFERENCES Sensor(SensorID), - FOREIGN KEY (WaterBodyName) REFERENCES BodyOfWater(Name) + FOREIGN KEY (WaterBodyName) REFERENCES BodyOfWater(Name), + PRIMARY KEY (MeasurementID, WaterBodyName, TimeMeasured) ); -CREATE TABLE SubDivision ( - MeasurementID INT, - SubDivisionID INT, - GroupID INT NOT NULL, +CREATE TABLE SubdivisionMeasurementData ( + MeasurementID INT NOT NULL, + TimeMeasured DATETIME NOT NULL, + SubdivID INT NOT NULL, + WaterBodyName TEXT NOT NULL, MinimumThickness FLOAT NOT NULL, AverageThickness FLOAT NOT NULL, - CenterLatitude FLOAT NOT NULL, - CenterLongitude FLOAT NOT NULL, + CalculatedSafety FLOAT NOT NULL, Accuracy FLOAT, - FOREIGN KEY (MeasurementID) REFERENCES Measurement(MeasurementID), - PRIMARY KEY (MeasurementID, SubDivisionID) + FOREIGN KEY (MeasurementID, TimeMeasured, WaterBodyName) REFERENCES Measurement(MeasurementID, TimeMeasured, WaterBodyName), + PRIMARY KEY (SubdivID, WaterBodyName, TimeMeasured) ); --- Indexes -CREATE INDEX idx_measurement_waterbodyname ON Measurement(WaterBodyName); -CREATE INDEX idx_measurement_timemeasured ON Measurement(TimeMeasured); - -- Test data INSERT INTO Sensor (SensorID, SensorType, Active) VALUES (1, 'LiDar', 1), (2, 'Magnetic', 1), -(3, 'Other', 0); +(3, 'LiDar', 0); INSERT INTO BodyOfWater(Name) VALUES -('Mjosa'); +('Mjøsa'), +('Skumsjøen'); + +INSERT INTO Measurement (MeasurementID, SensorID, TimeMeasured, WaterBodyName, CenterLon, CenterLat) VALUES +(1, 2, '2024-01-01 10:00:00', 'Mjøsa', 10.1234, 60.4567), +(2, 2, '2024-02-04 11:00:00', 'Mjøsa', 10.2345, 60.5678), +(3, 1, '2024-02-13 12:00:00', 'Mjøsa', 10.3456, 60.6789), +(1, 3, '2024-02-13 12:00:00', 'Skumsjøen', 10.4567, 60.7890), +(2, 3, '2024-02-13 12:00:00', 'Skumsjøen', 10.5678, 60.8901), +(3, 3, '2024-02-13 12:00:00', 'Skumsjøen', 10.6789, 60.9012); -INSERT INTO Measurement (MeasurementID, SensorID, TimeMeasured, WaterBodyName, WholeAverageThickness) VALUES -(1, 2, '2024-01-01 10:00:00', 'Mjosa', 5.8), -(2, 2, '2024-02-04 11:00:00', 'Mjosa', 7.6), -(3, 1, '2024-02-13 12:00:00', 'Mjosa', 4.1); -INSERT INTO SubDivision (MeasurementID, SubDivisionID, GroupID, MinimumThickness, AverageThickness, CenterLatitude, CenterLongitude, Accuracy) VALUES -(1, 1, 1, 3.2, 4.5, 60.765, 10.723, 1.2), -(1, 2, 1, 2.8, 4.3, 60.780, 10.776, 1.1), -(1, 3, 2, 4.1, 5.7, 60.768, 10.845, 1.3), -(1, 4, 2, 3.5, 5.0, 60.749, 10.783, 1.4), -(2, 1, 1, 4.1, 5.7, 60.768, 10.845, 1.3), -(2, 2, 2, 3.5, 5.0, 60.749, 10.783, 1.4), -(3, 1, 1, 4.1, 5.7, 60.768, 10.845, 1.3), -(3, 2, 2, 3.5, 5.0, 60.749, 10.783, 1.4); +INSERT INTO SubdivisionMeasurementData (MeasurementID, SubdivID, TimeMeasured, WaterBodyName, MinimumThickness, + AverageThickness, CalculatedSafety, Accuracy) VALUES +(1, 1, '2024-01-01 10:00:00', 'Mjøsa', 3.2, 4.5, 2.1, 1.2), +(1, 2, '2024-01-01 10:00:00', 'Mjøsa', 2.8, 4.3, 2.5, 1.1), +(1, 3, '2024-01-01 10:00:00', 'Mjøsa', 4.1, 5.7, 2.3, 1.3), +(1, 4, '2024-01-01 10:00:00', 'Mjøsa', 3.5, 5.0, 2.2, 1.4), +(2, 1, '2024-02-04 11:00:00', 'Mjøsa', 4.1, 5.7, 2.3, 1.3), +(2, 2, '2024-02-04 11:00:00', 'Mjøsa', 3.5, 5.0, 2.2, 1.4), +(3, 1, '2024-02-13 12:00:00', 'Mjøsa', 4.1, 5.7, 2.3, 1.3), +(3, 2, '2024-02-13 12:00:00', 'Mjøsa', 3.5, 5.0, 2.2, 1.4), +(1, 1, '2024-01-01 10:00:00', 'Skumsjøen', 3.8, 5.3, 2.2, 1.2), +(1, 2, '2024-01-01 10:00:00', 'Skumsjøen', 2.4, 4.8, 2.3, 1.1), +(1, 3, '2024-01-01 10:00:00', 'Skumsjøen', 4.5, 6.1, 2.5, 1.3), +(2, 1, '2024-02-04 11:00:00', 'Skumsjøen', 4.5, 6.1, 2.5, 1.3), +(2, 2, '2024-02-04 11:00:00', 'Skumsjøen', 3.9, 5.6, 2.3, 1.4), +(3, 1, '2024-02-13 12:00:00', 'Skumsjøen', 3.8, 5.3, 2.2, 1.2), +(3, 2, '2024-02-13 12:00:00', 'Skumsjøen', 2.4, 4.8, 2.3, 1.1); -- GitLab