Files
slotline/src/main/resources/db/migration/h2/V1__init.sql
T

33 lines
1.2 KiB
SQL

CREATE TABLE app_user (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
username VARCHAR(64) NOT NULL,
password_hash VARCHAR(100) NOT NULL,
role VARCHAR(16) NOT NULL,
created_at TIMESTAMP NOT NULL,
CONSTRAINT uq_app_user_username UNIQUE (username)
);
CREATE TABLE resource (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name VARCHAR(128) NOT NULL,
description VARCHAR(512),
created_at TIMESTAMP NOT NULL,
version BIGINT NOT NULL DEFAULT 0
);
CREATE TABLE reservation (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
resource_id BIGINT NOT NULL,
user_id BIGINT NOT NULL,
start_time TIMESTAMP NOT NULL,
end_time TIMESTAMP NOT NULL,
status VARCHAR(16) NOT NULL,
created_at TIMESTAMP NOT NULL,
version BIGINT NOT NULL DEFAULT 0,
CONSTRAINT fk_reservation_resource FOREIGN KEY (resource_id) REFERENCES resource (id),
CONSTRAINT fk_reservation_user FOREIGN KEY (user_id) REFERENCES app_user (id)
);
CREATE INDEX idx_reservation_resource_status ON reservation (resource_id, status);
CREATE INDEX idx_reservation_user ON reservation (user_id);