42 lines
1.2 KiB
MySQL
42 lines
1.2 KiB
MySQL
|
|
-- 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;
|