32 lines
921 B
SQL
32 lines
921 B
SQL
-- Enable foreign key constraints
|
|
PRAGMA foreign_keys = ON;
|
|
|
|
CREATE TABLE client (
|
|
uuid TEXT PRIMARY KEY NOT NULL,
|
|
name TEXT
|
|
);
|
|
|
|
CREATE TABLE camera (
|
|
uuid TEXT PRIMARY KEY NOT NULL,
|
|
desc TEXT,
|
|
name TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE sightings (
|
|
client_uuid TEXT NOT NULL,
|
|
sighted_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
camera_id TEXT NOT NULL,
|
|
FOREIGN KEY (client_uuid) REFERENCES client(uuid) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
FOREIGN KEY (camera_id) REFERENCES camera(uuid) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
UNIQUE (client_uuid, camera_id)
|
|
);
|
|
|
|
-- Create indexes for better performance on foreign key lookups
|
|
CREATE INDEX idx_sightings_client_uuid ON sightings(client_uuid);
|
|
CREATE INDEX idx_sightings_camera_id ON sightings(camera_id);
|
|
|
|
CREATE TABLE banned_names (
|
|
name TEXT PRIMARY KEY NOT NULL,
|
|
banned_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|