40 lines
892 B
SQL
40 lines
892 B
SQL
CREATE TABLE IF NOT EXISTS units (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
name VARCHAR(255),
|
|
short VARCHAR(255),
|
|
UNIQUE(name),
|
|
UNIQUE(short)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS food (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
version BIGINT,
|
|
name VARCHAR(255),
|
|
unit_id BIGINT REFERENCES units(id),
|
|
UNIQUE(name, version)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS nutritional_kind (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
name VARCHAR(255),
|
|
unit_id BIGINT REFERENCES units(id),
|
|
UNIQUE (name)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS food_base (
|
|
food_id BIGINT REFERENCES food(id),
|
|
kind_id BIGINT REFERENCES nutritional_kind(id),
|
|
value FLOAT,
|
|
PRIMARY KEY (food_id, kind_id)
|
|
);
|
|
|
|
INSERT INTO units(name, short) VALUES('Gram', 'g');
|
|
INSERT INTO units(name, short) VALUES('Milliliter', 'ml');
|
|
|
|
CREATE TABLE IF NOT EXISTS tracking (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
food_id BIGINT REFERENCES food(id),
|
|
quantity FLOAT,
|
|
ts BIGINT
|
|
);
|