21 lines
945 B
SQL
21 lines
945 B
SQL
-- T0326: Create Track History Database Model
|
|
-- Create table track_history for tracking track modifications
|
|
|
|
-- Table track_history
|
|
CREATE TABLE IF NOT EXISTS track_history (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
track_id BIGINT NOT NULL REFERENCES tracks(id) ON DELETE CASCADE,
|
|
user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE SET NULL,
|
|
action VARCHAR(50) NOT NULL,
|
|
old_value TEXT,
|
|
new_value TEXT,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Indexes for performance
|
|
CREATE INDEX IF NOT EXISTS idx_track_history_track_id ON track_history(track_id);
|
|
CREATE INDEX IF NOT EXISTS idx_track_history_user_id ON track_history(user_id);
|
|
CREATE INDEX IF NOT EXISTS idx_track_history_action ON track_history(action);
|
|
CREATE INDEX IF NOT EXISTS idx_track_history_created_at ON track_history(created_at DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_track_history_track_created ON track_history(track_id, created_at DESC);
|
|
|