CREATE TABLE nodes ( id SERIAL PRIMARY KEY, name VARCHAR(50) NOT NULL, address VARCHAR(50) NOT NULL, status SMALLINT NOT NULL, last_seen TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE services ( id SERIAL PRIMARY KEY, node_id INTEGER NOT NULL REFERENCES nodes(id) ON DELETE CASCADE, name VARCHAR(50) NOT NULL, status SMALLINT NOT NULL, command TEXT ); CREATE TABLE status_records ( id SERIAL PRIMARY KEY, service_id INTEGER NOT NULL REFERENCES services(id) ON DELETE CASCADE, status SMALLINT NOT NULL, timestamp TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ); CREATE INDEX idx_services_node_id ON services(node_id); CREATE INDEX idx_status_history ON status_records (service_id, timestamp DESC);