18 lines
738 B
SQL
18 lines
738 B
SQL
CREATE TYPE battery_status_enum AS ENUM ('unknown', 'unplugged', 'charging', 'full');
|
|
|
|
CREATE TABLE locations (
|
|
timestamp bigint PRIMARY KEY,
|
|
latitude numeric(9,6) NOT NULL,
|
|
longitude numeric(9,6) NOT NULL,
|
|
accuracy numeric(7,2) NOT NULL,
|
|
altitude numeric(7,2),
|
|
velocity numeric(7,2),
|
|
battery_level smallint NOT NULL,
|
|
bearing numeric(6,3),
|
|
battery_status battery_status_enum DEFAULT 'unknown' NOT NULL,
|
|
CONSTRAINT Location_battery_level_check CHECK ((battery_level >= 0) AND (battery_level <= 100)),
|
|
CONSTRAINT Location_bearing_check CHECK ((bearing >= (0)::numeric) AND (bearing <= (360)::numeric))
|
|
)
|
|
WITH (oids = false);
|
|
|
|
CREATE INDEX locations_timestamp ON locations USING btree (timestamp); |