CREATE TABLE `ipset_list` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(64) NOT NULL UNIQUE COMMENT 'Имя ipset', `description` VARCHAR(255) DEFAULT NULL, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE `ipset_members` ( `id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, `ipset_id` INT NOT NULL, `ip` VARCHAR(39) NOT NULL COMMENT 'IPv4 или IPv6 адрес', `description` VARCHAR(255) DEFAULT NULL, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY `uniq_ipset_ip` (`ipset_id`, `ip`), CONSTRAINT `fk_ipset_members_ipset` FOREIGN KEY (`ipset_id`) REFERENCES `ipset_list` (`id`) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ALTER TABLE `filter_list` ADD COLUMN `ipset_id` INT(11) DEFAULT NULL AFTER `dst`;