CREATE TABLE IF NOT EXISTS `categories` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL COMMENT '分类名称', `icon` varchar(50) DEFAULT NULL COMMENT '分类图标', `is_show` tinyint(1) DEFAULT 1 COMMENT '是否显示', `sort_order` int(11) DEFAULT 0 COMMENT '排序顺序', `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品分类表'; CREATE TABLE IF NOT EXISTS `goods` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL COMMENT '商品名称', `price` decimal(10,2) NOT NULL COMMENT '售价', `original_price` decimal(10,2) DEFAULT NULL COMMENT '原价', `unit` varchar(20) DEFAULT '件' COMMENT '单位', `category_id` int(11) DEFAULT NULL COMMENT '分类ID', `images` text COMMENT '图片JSON', `stock` int(11) DEFAULT 0 COMMENT '库存', `sales` int(11) DEFAULT 0 COMMENT '销量', `is_hot` tinyint(1) DEFAULT 0 COMMENT '是否热销', `is_new` tinyint(1) DEFAULT 0 COMMENT '是否新品', `pricing_type` tinyint(1) DEFAULT 1 COMMENT '定价类型 1-按件 2-按重量', `description` text COMMENT '商品描述', `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `category_id` (`category_id`), CONSTRAINT `goods_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品表'; CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `phone` varchar(20) NOT NULL COMMENT '手机号', `password` varchar(64) NOT NULL COMMENT '密码(MD5)', `name` varchar(100) DEFAULT NULL COMMENT '用户名', `avatar` varchar(255) DEFAULT NULL COMMENT '头像', `points` int(11) DEFAULT 0 COMMENT '积分', `role` tinyint(1) DEFAULT 0 COMMENT '角色 0-普通用户 1-店员', `status` tinyint(1) DEFAULT 1 COMMENT '状态 1-正常 0-禁用', `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `phone` (`phone`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表'; CREATE TABLE IF NOT EXISTS `orders` ( `id` varchar(50) NOT NULL COMMENT '订单号', `user_id` int(11) DEFAULT NULL COMMENT '用户ID', `status` varchar(20) DEFAULT 'pending' COMMENT '状态 pending-待支付 paid-已支付 completed-已完成 cancelled-已取消', `total_price` decimal(10,2) NOT NULL COMMENT '总价', `cart` text COMMENT '购物车数据JSON', `user_info` text COMMENT '用户信息JSON', `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订单表'; CREATE TABLE IF NOT EXISTS `points_logs` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL COMMENT '用户ID', `type` varchar(20) COMMENT '类型 earn-获得 spend-消费', `amount` int(11) NOT NULL COMMENT '积分数量', `description` varchar(200) DEFAULT NULL COMMENT '描述', `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), CONSTRAINT `points_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='积分记录表'; CREATE TABLE IF NOT EXISTS `stock` ( `id` int(11) NOT NULL AUTO_INCREMENT, `goods_id` int(11) NOT NULL COMMENT '商品ID', `quantity` int(11) DEFAULT 0 COMMENT '库存数量', `warehouse` varchar(50) DEFAULT '默认仓库' COMMENT '仓库', `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `goods_id` (`goods_id`), CONSTRAINT `stock_ibfk_1` FOREIGN KEY (`goods_id`) REFERENCES `goods` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='库存表';