create table controllers ( id INTEGER PRIMARY KEY AUTOINCREMENT, uid BLOB NOT NULL UNIQUE, name VARCHAR(128), ip VARCHAR(16), port INTEGER, relay_count INTEGER, active BOOLEAN NOT NULL ); create table relays ( id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(128), number INTEGER NOT NULL, controller_id INTEGER NOT NULL REFERENCES controllers (id) ON DELETE CASCADE ); create table schedules ( id INTEGER PRIMARY KEY AUTOINCREMENT, uid BLOB NOT NULL UNIQUE, name VARCHAR(128), periods BLOB ); create table tags ( id INTEGER PRIMARY KEY AUTOINCREMENT, tag VARCHAR(128) NOT NULL UNIQUE ); create table junction_tag ( tag_id INTEGER NOT NULL REFERENCES tags (id) ON DELETE CASCADE, relay_id INTEGER REFERENCES relays (id) ON DELETE CASCADE, schedule_id INTEGER REFERENCES schedules (id) ON DELETE CASCADE ); create table junction_relay_schedule ( weekday SMALLINT NOT NULL, relay_id INTEGER REFERENCES relays (id) ON DELETE CASCADE, schedule_id INTEGER DEFAULT 1 REFERENCES schedules (id) ON DELETE SET DEFAULT ); INSERT INTO schedules (uid, name, periods) VALUES (x'6f666600000000000000000000000000', 'off', x'00'); INSERT INTO schedules (uid, name, periods) VALUES (x'6f6e0000000000000000000000000000', 'on', x'010000000000');