summary history files

desktop/db/migrations/000007_tags.up.sql
CREATE TABLE IF NOT EXISTS tag
(
    id INTEGER NOT NULL PRIMARY KEY,
    name TEXT NOT NULL,
    UNIQUE(name)
);

CREATE TABLE IF NOT EXISTS tag_attributes
(
    id INTEGER NOT NULL PRIMARY KEY,
    tag_id INTEGER NOT NULL,
    name TEXT NOT NULL,
    value TEXT NOT NULL,
    UNIQUE(tag_id, name),
    FOREIGN KEY(tag_id) REFERENCES tag(id)
);

CREATE TABLE IF NOT EXISTS tag_transactions
(
    id INTEGER NOT NULL PRIMARY KEY,
    tag_id INTEGER NOT NULL,
    transactions_id INTEGER NOT NULL,
    UNIQUE(tag_id, transactions_id),
    FOREIGN KEY(tag_id) REFERENCES tag(id),
    FOREIGN KEY(transactions_id) REFERENCES transactions(id)
);

CREATE TABLE IF NOT EXISTS tag_regex
(
    id INTEGER NOT NULL PRIMARY KEY,
    tag_id INTEGER NOT NULL,
    regex TEXT NOT NULL,
    UNIQUE(tag_id, regex),
    FOREIGN KEY(tag_id) REFERENCES tag(id)
);