26 lines
1.1 KiB
SQL
Executable File
26 lines
1.1 KiB
SQL
Executable File
CREATE TABLE sessions (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
set_id INTEGER NOT NULL REFERENCES training_sets(id),
|
|
started_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
ended_at DATETIME,
|
|
note TEXT DEFAULT ''
|
|
);
|
|
|
|
CREATE TABLE session_logs (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
session_id INTEGER NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
|
|
exercise_id INTEGER NOT NULL REFERENCES exercises(id),
|
|
exercise_name TEXT NOT NULL,
|
|
set_number INTEGER NOT NULL CHECK(set_number >= 1),
|
|
weight_kg REAL NOT NULL CHECK(weight_kg >= 0 AND weight_kg <= 999),
|
|
reps INTEGER NOT NULL CHECK(reps >= 0 AND reps <= 999),
|
|
note TEXT DEFAULT '',
|
|
logged_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE(session_id, exercise_id, set_number)
|
|
);
|
|
|
|
CREATE INDEX idx_sessions_set_id ON sessions(set_id);
|
|
CREATE INDEX idx_sessions_started_at ON sessions(started_at);
|
|
CREATE INDEX idx_session_logs_session_id ON session_logs(session_id);
|
|
CREATE INDEX idx_session_logs_exercise_id ON session_logs(exercise_id);
|