71 lines
1.8 KiB
MySQL
71 lines
1.8 KiB
MySQL
|
CREATE TABLE IF NOT EXISTS map (
|
||
|
zoom_level INTEGER,
|
||
|
tile_column INTEGER,
|
||
|
tile_row INTEGER,
|
||
|
tile_id TEXT,
|
||
|
grid_id TEXT
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS grid_key (
|
||
|
grid_id TEXT,
|
||
|
key_name TEXT
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS keymap (
|
||
|
key_name TEXT,
|
||
|
key_json TEXT
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS grid_utfgrid (
|
||
|
grid_id TEXT,
|
||
|
grid_utfgrid TEXT
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS images (
|
||
|
tile_data blob,
|
||
|
tile_id text
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS metadata (
|
||
|
name text,
|
||
|
value text
|
||
|
);
|
||
|
|
||
|
|
||
|
CREATE UNIQUE INDEX IF NOT EXISTS map_index ON map (zoom_level, tile_column, tile_row);
|
||
|
CREATE UNIQUE INDEX IF NOT EXISTS grid_key_lookup ON grid_key (grid_id, key_name);
|
||
|
CREATE UNIQUE INDEX IF NOT EXISTS keymap_lookup ON keymap (key_name);
|
||
|
CREATE UNIQUE INDEX IF NOT EXISTS grid_utfgrid_lookup ON grid_utfgrid (grid_id);
|
||
|
CREATE UNIQUE INDEX IF NOT EXISTS images_id ON images (tile_id);
|
||
|
CREATE UNIQUE INDEX IF NOT EXISTS name ON metadata (name);
|
||
|
|
||
|
|
||
|
CREATE VIEW IF NOT EXISTS tiles AS
|
||
|
SELECT
|
||
|
map.zoom_level AS zoom_level,
|
||
|
map.tile_column AS tile_column,
|
||
|
map.tile_row AS tile_row,
|
||
|
images.tile_data AS tile_data
|
||
|
FROM map
|
||
|
JOIN images ON images.tile_id = map.tile_id;
|
||
|
|
||
|
CREATE VIEW IF NOT EXISTS grids AS
|
||
|
SELECT
|
||
|
map.zoom_level AS zoom_level,
|
||
|
map.tile_column AS tile_column,
|
||
|
map.tile_row AS tile_row,
|
||
|
grid_utfgrid.grid_utfgrid AS grid
|
||
|
FROM map
|
||
|
JOIN grid_utfgrid ON grid_utfgrid.grid_id = map.grid_id;
|
||
|
|
||
|
CREATE VIEW IF NOT EXISTS grid_data AS
|
||
|
SELECT
|
||
|
map.zoom_level AS zoom_level,
|
||
|
map.tile_column AS tile_column,
|
||
|
map.tile_row AS tile_row,
|
||
|
keymap.key_name AS key_name,
|
||
|
keymap.key_json AS key_json
|
||
|
FROM map
|
||
|
JOIN grid_key ON map.grid_id = grid_key.grid_id
|
||
|
JOIN keymap ON grid_key.key_name = keymap.key_name;
|