Files
training/db/createdb.sql

38 lines
1.1 KiB
SQL

create table exercise (
id smallserial primary key,
name varchar not null
);
create table shorthand (
exercise smallint not null,
name varchar unique not null,
constraint fk_exercise foreign key (exercise) references exercise(id)
);
create table account (
id serial primary key,
name varchar not null,
login varchar not null,
birthdate date not null
);
create table training (
id serial primary key,
account integer not null,
time timestamptz not null default timezone('utc', now()),
exercise smallint not null,
runs smallint not null,
reps smallint not null,
kilos numeric(4,1) not null,
constraint fk_exercise foreign key (exercise) references exercise(id),
constraint fk_account foreign key (account) references account(id)
);
create view dailylift as select
date(time) as time, account, exercise, sum(runs * reps * kilos) as lift
from training group by 1, 2, 3;
create role training_user;
grant select on account to create_user;
grant select on exercise to create_user;
grant select on shorthand to create_user;
grant insert on training to create_user;
grant select on training to create_user;
grant usage on training_id_seq to create_user;