BEGIN; -- TODO enable strict mode so that primary key is automatically enforced to not be NULL CREATE TABLE received_route ( id INTEGER PRIMARY KEY, received_route_source route_source NOT NULL, recieved_route_strava_id TEXT, -- ON DELETE what? FOREIGN KEY (received_route_source_id) REFERENCES received_route_source (id), CHECK (received_route_source IN ('gpx_upload', 'strava', 'rwgps')), CHECK ((received_route_source = 'strava') = (received_route_strava_id IS NULL)) ); CREATE TABLE received_route_linestring ( received_route_id INT NOT NULL, linestring BLOB NOT NULL, FOREIGN KEY (received_route_id) REFERENCES received_route (id) ); COMMIT;