rss2/init-db/21-search-history.sql

27 lines
1.1 KiB
SQL

-- Tabla de historial de búsquedas
-- Registra todas las búsquedas realizadas por usuarios autenticados
CREATE TABLE IF NOT EXISTS search_history (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES usuarios(id) ON DELETE CASCADE,
query TEXT NOT NULL,
results_count INTEGER DEFAULT 0,
searched_at TIMESTAMP DEFAULT NOW(),
CONSTRAINT query_not_empty CHECK (LENGTH(TRIM(query)) > 0)
);
-- Índices para queries eficientes
CREATE INDEX IF NOT EXISTS idx_search_history_user_date
ON search_history(user_id, searched_at DESC);
CREATE INDEX IF NOT EXISTS idx_search_history_user_id
ON search_history(user_id);
-- Índice para buscar búsquedas populares
CREATE INDEX IF NOT EXISTS idx_search_history_query
ON search_history(query);
-- Comentarios
COMMENT ON TABLE search_history IS 'Historial de búsquedas de usuarios';
COMMENT ON COLUMN search_history.user_id IS 'Usuario que realizó la búsqueda';
COMMENT ON COLUMN search_history.query IS 'Término de búsqueda';
COMMENT ON COLUMN search_history.results_count IS 'Cantidad de resultados encontrados';