zkt26/sk1/init.sql

24 lines
779 B
SQL

-- ShortLink database schema
CREATE TABLE IF NOT EXISTS links (
id SERIAL PRIMARY KEY,
code VARCHAR(20) UNIQUE NOT NULL,
original_url TEXT NOT NULL,
title VARCHAR(255),
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
created_by_ip VARCHAR(45)
);
CREATE TABLE IF NOT EXISTS visits (
id SERIAL PRIMARY KEY,
link_id INTEGER NOT NULL REFERENCES links(id) ON DELETE CASCADE,
visited_at TIMESTAMP NOT NULL DEFAULT NOW(),
ip_address VARCHAR(45),
user_agent TEXT,
referer TEXT
);
CREATE INDEX IF NOT EXISTS idx_links_code ON links(code);
CREATE INDEX IF NOT EXISTS idx_visits_link_id ON visits(link_id);
CREATE INDEX IF NOT EXISTS idx_visits_visited ON visits(visited_at);