···11-CREATE TABLE links (
22- id SERIAL PRIMARY KEY,
33- original_url TEXT NOT NULL,
44- short_code VARCHAR(8) NOT NULL UNIQUE,
55- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
66- clicks BIGINT NOT NULL DEFAULT 0
77-);
88-99-CREATE INDEX idx_short_code ON links(short_code);
1010-1111-CREATE TABLE clicks (
1212- id SERIAL PRIMARY KEY,
1313- link_id INTEGER REFERENCES links(id),
1414- source TEXT,
1515- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
1616-);
1717-1818-CREATE INDEX idx_link_id ON clicks(link_id);
-15
migrations/20240302000000_auth_and_tracking.sql:
···11--- Add users table
22-CREATE TABLE users (
33- id SERIAL PRIMARY KEY,
44- email TEXT UNIQUE NOT NULL,
55- password_hash TEXT NOT NULL,
66- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
77-);
88-99--- Add user_id to links
1010-ALTER TABLE links
1111-ADD COLUMN user_id INTEGER REFERENCES users(id);
1212-1313--- Add query_source to clicks
1414-ALTER TABLE clicks
1515-ADD COLUMN query_source TEXT;