30 lines
1.1 KiB
SQL
30 lines
1.1 KiB
SQL
CREATE TABLE IF NOT EXISTS tickets (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
source VARCHAR(64) NOT NULL,
|
|
external_id VARCHAR(255) NOT NULL,
|
|
title VARCHAR(512) NOT NULL,
|
|
status VARCHAR(64) NOT NULL,
|
|
opened_at TIMESTAMP NULL,
|
|
closed_at TIMESTAMP NULL,
|
|
url VARCHAR(512) NULL,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
UNIQUE KEY uniq_tickets_source_external (source, external_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS ticket_links (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
ticket_id BIGINT NOT NULL,
|
|
asset_id BIGINT NOT NULL,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT fk_ticket_links_ticket
|
|
FOREIGN KEY (ticket_id) REFERENCES tickets(id)
|
|
ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT fk_ticket_links_asset
|
|
FOREIGN KEY (asset_id) REFERENCES assets(id)
|
|
ON DELETE CASCADE ON UPDATE CASCADE,
|
|
UNIQUE KEY uniq_ticket_links_ticket_asset (ticket_id, asset_id)
|
|
);
|
|
|
|
CREATE INDEX idx_ticket_links_asset ON ticket_links(asset_id, ticket_id);
|