bmc_hub/migrations/188_sag_buzzwords.sql

42 lines
1.2 KiB
MySQL
Raw Permalink Normal View History

-- Migration: 188_sag_buzzwords
-- Description: Separate buzzwords module for SAG with free-text keywords and case links
BEGIN;
CREATE TABLE IF NOT EXISTS buzzwords (
id SERIAL PRIMARY KEY,
word VARCHAR(120) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMP
);
CREATE TABLE IF NOT EXISTS sag_buzzwords (
id SERIAL PRIMARY KEY,
sag_id INTEGER NOT NULL REFERENCES sag_sager(id) ON DELETE CASCADE,
buzzword_id INTEGER NOT NULL REFERENCES buzzwords(id) ON DELETE CASCADE,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMP
);
CREATE UNIQUE INDEX IF NOT EXISTS uq_buzzwords_word_active
ON buzzwords (word)
WHERE deleted_at IS NULL;
CREATE INDEX IF NOT EXISTS idx_buzzwords_word_active
ON buzzwords (word)
WHERE deleted_at IS NULL;
CREATE UNIQUE INDEX IF NOT EXISTS uq_sag_buzzwords_active
ON sag_buzzwords (sag_id, buzzword_id)
WHERE deleted_at IS NULL;
CREATE INDEX IF NOT EXISTS idx_sag_buzzwords_sag_id_active
ON sag_buzzwords (sag_id)
WHERE deleted_at IS NULL;
CREATE INDEX IF NOT EXISTS idx_sag_buzzwords_buzzword_id_active
ON sag_buzzwords (buzzword_id)
WHERE deleted_at IS NULL;
COMMIT;