24 lines
779 B
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);
|