-- 宿主客户与 API Key(管理端动态签发,无需改 .env) CREATE TABLE `host_customer` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `customer_id` VARCHAR(32) NOT NULL, `name` VARCHAR(128) NOT NULL, `status` VARCHAR(16) NOT NULL DEFAULT 'active', `remark` VARCHAR(255) NULL, `is_deleted` BOOLEAN NOT NULL DEFAULT false, `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `updated_at` DATETIME(3) NOT NULL, UNIQUE INDEX `host_customer_customer_id_key`(`customer_id`), INDEX `idx_host_customer_status`(`status`, `is_deleted`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE TABLE `service_api_key` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `key_id` VARCHAR(32) NOT NULL, `customer_id` VARCHAR(32) NOT NULL, `token_hash` CHAR(64) NOT NULL, `key_prefix` VARCHAR(16) NOT NULL, `permissions` JSON NOT NULL, `is_active` BOOLEAN NOT NULL DEFAULT true, `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `updated_at` DATETIME(3) NOT NULL, UNIQUE INDEX `service_api_key_key_id_key`(`key_id`), UNIQUE INDEX `service_api_key_token_hash_key`(`token_hash`), INDEX `idx_service_api_key_customer`(`customer_id`, `is_active`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `service_api_key` ADD CONSTRAINT `service_api_key_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `host_customer`(`customer_id`) ON DELETE RESTRICT ON UPDATE CASCADE;