CREATE TABLE `users` ( `user_id` INT(11) PRIMARY KEY AUTO_INCREMENT, `username` VARCHAR(100) NOT NULL, `email` VARCHAR(255) UNIQUE NOT NULL, -- 其他用户相关信息... ); CREATE TABLE `products` ( `product_id` INT(11) PRIMARY KEY AUTO_INCREMENT, `product_name` VARCHAR(100) NOT NULL, `is_subscription` BOOLEAN NOT NULL DEFAULT FALSE, -- 标记是否为订阅商品 `subscription_type` ENUM('monthly', 'quarterly') DEFAULT NULL, -- 订阅类型(1个月或3个月) `price` DECIMAL(10, 2) NOT NULL, -- 其他商品相关信息... ); CREATE TABLE `orders` ( `order_id` INT(11) PRIMARY KEY AUTO_INCREMENT, `user_id` INT(11), `product_id` INT(11), `order_date` DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (`user_id`) REFERENCES `users`(user_id), FOREIGN KEY (`product_id`) REFERENCES `products`(product_id), -- 其他订单相关信息,如交易状态、支付信息等 ); CREATE TABLE `subscriptions` ( `subscription_id` INT(11) PRIMARY KEY AUTO_INCREMENT, `user_id` INT(11), `product_id` INT(11), `start_date` DATE NOT NULL, `end_date` DATE NOT NULL, `next_renewal_date` DATE NOT NULL, `latest_order_id` INT(11) DEFAULT NULL, -- 可选,记录最近一次产生订单的ID FOREIGN KEY (`user_id`) REFERENCES `users`(user_id), FOREIGN KEY (`product_id`) REFERENCES `products`(product_id), FOREIGN KEY (`latest_order_id`) REFERENCES `orders`(order_id) ON DELETE SET NULL ); 配合后台逻辑实现自动扣费,并在扣费成功后更新订阅表的end_date和next_renewal_date字段