Repository navigation
Expand file tree
/
Copy pathschema.sql
More file actions
86 lines (67 loc) · 2.52 KB
/
Copy pathschema.sql
File metadata and controls
86 lines (67 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
CREATE SCHEMA IF NOT EXISTS `roadstate` ;
USE `roadstate`;
-- -----------------------------------------------------
-- Table `roadstate`.`clusters`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `roadstate`.`clusters` ;
CREATE TABLE IF NOT EXISTS `roadstate`.`clusters` (
`id` BIGINT NOT NULL AUTO_INCREMENT ,
`latitude` DOUBLE NULL ,
`longitude` DOUBLE NULL ,
`average` FLOAT NULL ,
PRIMARY KEY (`id`) ,
INDEX `lat` (`latitude` ASC, `longitude` ASC) )
ENGINE = MyISAM;
-- -----------------------------------------------------
-- Table `roadstate`.`datas`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `roadstate`.`datas` ;
CREATE TABLE IF NOT EXISTS `roadstate`.`datas` (
`quality_factor` INT NULL ,
`timestamp` BIGINT NULL ,
`ref_clusters` BIGINT NULL )
ENGINE = MyISAM;
-- -----------------------------------------------------
-- Table `roadstate`.`zoom_levels`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `roadstate`.`zoom_levels` ;
CREATE TABLE IF NOT EXISTS `roadstate`.`zoom_levels` (
`zoom_level` INT NULL ,
`latitude` DOUBLE NULL ,
`longitude` DOUBLE NULL ,
`average` FLOAT NULL ,
`ref_cluster` BIGINT NULL ,
`radius_lat` DOUBLE NULL ,
`radius_long` DOUBLE NULL ,
INDEX `i_zoom_level` (`zoom_level` ASC) )
ENGINE = MyISAM;
-- -----------------------------------------------------
-- Placeholder table for view `roadstate`.`cluster_classes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `roadstate`.`cluster_classes` (`count(*)` INT, `ref_clusters` INT);
DELIMITER //
DROP procedure IF EXISTS `roadstate`.`gen_avg` //
CREATE PROCEDURE `roadstate`.`gen_avg` (idc BIGINT)
BEGIN
DECLARE av FLOAT;
SELECT AVG(quality_factor) AS average INTO av FROM roadstate.datas WHERE ref_clusters=idc;
UPDATE roadstate.clusters SET average=av WHERE id=idc;
END//
DELIMITER //
-- -----------------------------------------------------
-- View `roadstate`.`cluster_classes`
-- -----------------------------------------------------
DROP VIEW IF EXISTS `roadstate`.`cluster_classes` ;
DROP TABLE IF EXISTS `roadstate`.`cluster_classes`;
CREATE OR REPLACE VIEW `roadstate`.`cluster_classes` AS select count(*), ref_clusters from roadstate.datas group by ref_clusters;
;
USE `roadstate`;
DELIMITER //
DROP TRIGGER IF EXISTS `roadstate`.`t_calc_avg` //
CREATE TRIGGER roadstate.t_calc_avg AFTER INSERT ON roadstate.datas
FOR EACH ROW
BEGIN
CALL roadstate.gen_avg(NEW.ref_clusters);
END;
//
DELIMITER //