CREATE TABLE facility_permissions ( id INT NOT NULL AUTO_INCREMENT, permission_id INT, facility_id INT, booking_rule_id INT, user_id INT, -- Granted by can_edit TINYINT NOT NULL, can_remove TINYINT NOT NULL, can_book TINYINT NOT NULL DEFAULT 1, can_approve TINYINT NOT NULL, can_add_bookables TINYINT NOT NULL, can_edit_bookables TINYINT NOT NULL, can_remove_bookables TINYINT NOT NULL, loggable_id INT, CONSTRAINT PRIMARY KEY (id), CONSTRAINT FOREIGN KEY (permission_id) REFERENCES permissions (id) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT FOREIGN KEY (booking_rule_id) REFERENCES booking_rules (id) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT FOREIGN KEY (facility_id) REFERENCES facilities (id) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT FOREIGN KEY (loggable_id) REFERENCES loggables (id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=INNODB;