Globinours/migrations/027_bonded_groups.sql

23 lines
764 B
SQL

PRAGMA foreign_keys = ON;
CREATE TABLE IF NOT EXISTS bonded_groups (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
notes TEXT,
active INTEGER NOT NULL DEFAULT 1,
created_at TEXT NOT NULL DEFAULT (datetime('now')),
dissolved_at TEXT
);
CREATE TABLE IF NOT EXISTS bonded_group_members (
group_id INTEGER NOT NULL,
animal_id INTEGER NOT NULL,
position INTEGER NOT NULL DEFAULT 1,
PRIMARY KEY(group_id, animal_id),
FOREIGN KEY(group_id) REFERENCES bonded_groups(id) ON DELETE CASCADE,
FOREIGN KEY(animal_id) REFERENCES animals(id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_bonded_members_animal
ON bonded_group_members(animal_id);
CREATE INDEX IF NOT EXISTS idx_bonded_members_group ON bonded_group_members(group_id, position);