-- 鄂伦春文化商城数据库表结构 -- 创建时间: 2025-01-08 -- 说明: 根据CMD项目中的实体类创建对应的数据库表结构 -- 1. 商品表 CREATE TABLE `oroqen_product` ( `id` varchar(32) NOT NULL COMMENT '主键', `product_name` varchar(255) DEFAULT NULL COMMENT '商品名称', `product_code` varchar(100) DEFAULT NULL COMMENT '商品编码', `category_id` varchar(32) DEFAULT NULL COMMENT '分类ID', `price` decimal(10,2) DEFAULT NULL COMMENT '价格', `stock` int DEFAULT NULL COMMENT '库存', `main_image` varchar(500) DEFAULT NULL COMMENT '主图', `product_images` text COMMENT '商品图片', `video_url` varchar(500) DEFAULT NULL COMMENT '视频链接', `description` text COMMENT '商品描述', `culture_story` text COMMENT '文化故事', `craftsman_info` text COMMENT '工匠信息', `material` varchar(255) DEFAULT NULL COMMENT '材质', `specifications` text COMMENT '规格', `weight` decimal(8,2) DEFAULT NULL COMMENT '重量(kg)', `dimensions` varchar(255) DEFAULT NULL COMMENT '尺寸', `tags` varchar(500) DEFAULT NULL COMMENT '标签', `is_recommended` tinyint DEFAULT '0' COMMENT '是否推荐(0-否,1-是)', `is_hot` tinyint DEFAULT '0' COMMENT '是否热销(0-否,1-是)', `sales_count` int DEFAULT '0' COMMENT '销量', `sort_order` int DEFAULT '0' COMMENT '排序', `status` tinyint DEFAULT '1' COMMENT '状态(0-禁用,1-启用)', `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新日期', PRIMARY KEY (`id`), KEY `idx_category_id` (`category_id`), KEY `idx_status` (`status`), KEY `idx_is_recommended` (`is_recommended`), KEY `idx_is_hot` (`is_hot`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表'; -- 2. 商品分类表 CREATE TABLE `oroqen_product_category` ( `id` varchar(32) NOT NULL COMMENT '主键', `category_name` varchar(255) DEFAULT NULL COMMENT '分类名称', `category_code` varchar(100) DEFAULT NULL COMMENT '分类编码', `parent_id` varchar(32) DEFAULT NULL COMMENT '父级ID', `sort_order` int DEFAULT '0' COMMENT '排序', `description` text COMMENT '描述', `icon` varchar(255) DEFAULT NULL COMMENT '图标', `status` tinyint DEFAULT '1' COMMENT '状态(0-禁用,1-启用)', `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新日期', PRIMARY KEY (`id`), KEY `idx_parent_id` (`parent_id`), KEY `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品分类表'; -- 3. 订单表 CREATE TABLE `oroqen_order` ( `id` varchar(32) NOT NULL COMMENT '主键', `order_no` varchar(100) DEFAULT NULL COMMENT '订单号', `user_id` varchar(32) DEFAULT NULL COMMENT '用户ID', `order_status` tinyint DEFAULT '1' COMMENT '订单状态(1-待付款,2-待发货,3-待收货,4-已完成,5-已取消)', `payment_status` tinyint DEFAULT '0' COMMENT '支付状态(0-未支付,1-已支付)', `total_amount` decimal(10,2) DEFAULT NULL COMMENT '订单总金额', `payment_amount` decimal(10,2) DEFAULT NULL COMMENT '实付金额', `discount_amount` decimal(10,2) DEFAULT '0.00' COMMENT '优惠金额', `shipping_fee` decimal(10,2) DEFAULT '0.00' COMMENT '运费', `payment_method` varchar(50) DEFAULT NULL COMMENT '支付方式', `payment_time` datetime DEFAULT NULL COMMENT '支付时间', `shipping_time` datetime DEFAULT NULL COMMENT '发货时间', `delivery_time` datetime DEFAULT NULL COMMENT '收货时间', `receiver_name` varchar(100) DEFAULT NULL COMMENT '收货人姓名', `receiver_phone` varchar(20) DEFAULT NULL COMMENT '收货人电话', `receiver_address` varchar(500) DEFAULT NULL COMMENT '收货地址', `remark` text COMMENT '备注', `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新日期', PRIMARY KEY (`id`), UNIQUE KEY `uk_order_no` (`order_no`), KEY `idx_user_id` (`user_id`), KEY `idx_order_status` (`order_status`), KEY `idx_payment_status` (`payment_status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表'; -- 4. 订单项表 CREATE TABLE `oroqen_order_item` ( `id` varchar(32) NOT NULL COMMENT '主键', `order_id` varchar(32) DEFAULT NULL COMMENT '订单ID', `product_id` varchar(32) DEFAULT NULL COMMENT '商品ID', `product_name` varchar(255) DEFAULT NULL COMMENT '商品名称', `product_image` varchar(500) DEFAULT NULL COMMENT '商品图片', `product_price` decimal(10,2) DEFAULT NULL COMMENT '商品价格', `quantity` int DEFAULT NULL COMMENT '购买数量', `subtotal` decimal(10,2) DEFAULT NULL COMMENT '小计金额', `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新日期', PRIMARY KEY (`id`), KEY `idx_order_id` (`order_id`), KEY `idx_product_id` (`product_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单项表'; -- 5. 购物车表 CREATE TABLE `oroqen_cart` ( `id` varchar(32) NOT NULL COMMENT '主键', `user_id` varchar(32) DEFAULT NULL COMMENT '用户ID', `product_id` varchar(32) DEFAULT NULL COMMENT '商品ID', `quantity` int DEFAULT NULL COMMENT '数量', `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新日期', PRIMARY KEY (`id`), KEY `idx_user_id` (`user_id`), KEY `idx_product_id` (`product_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='购物车表'; -- 6. 非遗项目表 CREATE TABLE `oroqen_heritage_project` ( `id` varchar(32) NOT NULL COMMENT '主键', `project_name` varchar(255) DEFAULT NULL COMMENT '项目名称', `project_code` varchar(100) DEFAULT NULL COMMENT '项目编码', `category` varchar(100) DEFAULT NULL COMMENT '项目类别', `level` varchar(50) DEFAULT NULL COMMENT '保护级别', `description` text COMMENT '项目描述', `history` text COMMENT '历史渊源', `characteristics` text COMMENT '主要特征', `value` text COMMENT '重要价值', `current_status` text COMMENT '现状', `protection_measures` text COMMENT '保护措施', `cover_image` varchar(500) DEFAULT NULL COMMENT '封面图片', `images` text COMMENT '图片集', `video_url` varchar(500) DEFAULT NULL COMMENT '视频链接', `audio_url` varchar(500) DEFAULT NULL COMMENT '音频链接', `approval_date` date DEFAULT NULL COMMENT '批准时间', `approval_unit` varchar(255) DEFAULT NULL COMMENT '批准单位', `sort_order` int DEFAULT '0' COMMENT '排序', `status` tinyint DEFAULT '1' COMMENT '状态(0-禁用,1-启用)', `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新日期', PRIMARY KEY (`id`), KEY `idx_category` (`category`), KEY `idx_level` (`level`), KEY `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='非遗项目表'; -- 7. 非遗传承人表 CREATE TABLE `oroqen_heritage_inheritor` ( `id` varchar(32) NOT NULL COMMENT '主键', `name` varchar(100) DEFAULT NULL COMMENT '姓名', `gender` tinyint DEFAULT NULL COMMENT '性别(0-女,1-男)', `birth_year` int DEFAULT NULL COMMENT '出生年份', `hometown` varchar(255) DEFAULT NULL COMMENT '籍贯', `heritage_skills` text COMMENT '传承技艺', `heritage_level` varchar(50) DEFAULT NULL COMMENT '传承级别', `avatar` varchar(500) DEFAULT NULL COMMENT '头像', `biography` text COMMENT '个人简介', `achievements` text COMMENT '主要成就', `representative_works` text COMMENT '代表作品', `work_images` text COMMENT '作品图片', `contact_info` varchar(255) DEFAULT NULL COMMENT '联系方式', `status` tinyint DEFAULT '1' COMMENT '状态(0-禁用,1-启用)', `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新日期', PRIMARY KEY (`id`), KEY `idx_heritage_level` (`heritage_level`), KEY `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='非遗传承人表'; -- 8. 文化内容分类表 CREATE TABLE `oroqen_culture_category` ( `id` varchar(32) NOT NULL COMMENT '主键', `category_name` varchar(255) DEFAULT NULL COMMENT '分类名称', `category_code` varchar(100) DEFAULT NULL COMMENT '分类编码', `parent_id` varchar(32) DEFAULT NULL COMMENT '父级ID', `sort_order` int DEFAULT '0' COMMENT '排序', `description` text COMMENT '描述', `icon` varchar(255) DEFAULT NULL COMMENT '图标', `status` tinyint DEFAULT '1' COMMENT '状态(0-禁用,1-启用)', `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新日期', PRIMARY KEY (`id`), KEY `idx_parent_id` (`parent_id`), KEY `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文化内容分类表'; -- 9. 文化内容表 CREATE TABLE `oroqen_culture_content` ( `id` varchar(32) NOT NULL COMMENT '主键', `title` varchar(255) DEFAULT NULL COMMENT '标题', `category_id` varchar(32) DEFAULT NULL COMMENT '分类ID', `content` longtext COMMENT '内容', `summary` text COMMENT '摘要', `cover_image` varchar(500) DEFAULT NULL COMMENT '封面图片', `images` text COMMENT '图片集', `video_url` varchar(500) DEFAULT NULL COMMENT '视频链接', `audio_url` varchar(500) DEFAULT NULL COMMENT '音频链接', `tags` varchar(500) DEFAULT NULL COMMENT '标签', `author` varchar(100) DEFAULT NULL COMMENT '作者', `source` varchar(255) DEFAULT NULL COMMENT '来源', `is_recommended` tinyint DEFAULT '0' COMMENT '是否推荐(0-否,1-是)', `view_count` int DEFAULT '0' COMMENT '浏览次数', `like_count` int DEFAULT '0' COMMENT '点赞次数', `favorite_count` int DEFAULT '0' COMMENT '收藏次数', `sort_order` int DEFAULT '0' COMMENT '排序', `status` tinyint DEFAULT '1' COMMENT '状态(0-禁用,1-启用)', `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新日期', PRIMARY KEY (`id`), KEY `idx_category_id` (`category_id`), KEY `idx_is_recommended` (`is_recommended`), KEY `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文化内容表'; -- 10. 用户收藏表 CREATE TABLE `oroqen_user_favorite` ( `id` varchar(32) NOT NULL COMMENT '主键', `user_id` varchar(32) DEFAULT NULL COMMENT '用户ID', `favorite_type` tinyint DEFAULT NULL COMMENT '收藏类型(1-商品,2-文化内容,3-传承人)', `target_id` varchar(32) DEFAULT NULL COMMENT '收藏对象ID', `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新日期', PRIMARY KEY (`id`), KEY `idx_user_id` (`user_id`), KEY `idx_favorite_type` (`favorite_type`), KEY `idx_target_id` (`target_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户收藏表'; -- 添加外键约束 ALTER TABLE `oroqen_product` ADD CONSTRAINT `fk_product_category` FOREIGN KEY (`category_id`) REFERENCES `oroqen_product_category` (`id`); ALTER TABLE `oroqen_order_item` ADD CONSTRAINT `fk_order_item_order` FOREIGN KEY (`order_id`) REFERENCES `oroqen_order` (`id`); ALTER TABLE `oroqen_order_item` ADD CONSTRAINT `fk_order_item_product` FOREIGN KEY (`product_id`) REFERENCES `oroqen_product` (`id`); ALTER TABLE `oroqen_cart` ADD CONSTRAINT `fk_cart_product` FOREIGN KEY (`product_id`) REFERENCES `oroqen_product` (`id`); ALTER TABLE `oroqen_culture_content` ADD CONSTRAINT `fk_culture_content_category` FOREIGN KEY (`category_id`) REFERENCES `oroqen_culture_category` (`id`); -- 插入初始数据示例 -- 商品分类初始数据 INSERT INTO `oroqen_product_category` (`id`, `category_name`, `category_code`, `parent_id`, `sort_order`, `description`, `status`, `create_time`) VALUES ('1', '传统手工艺品', 'TRADITIONAL_CRAFTS', NULL, 1, '鄂伦春族传统手工艺品', 1, NOW()), ('2', '民族服饰', 'ETHNIC_CLOTHING', NULL, 2, '鄂伦春族传统服饰', 1, NOW()), ('3', '狩猎用具', 'HUNTING_TOOLS', NULL, 3, '传统狩猎工具', 1, NOW()), ('4', '生活用品', 'DAILY_ITEMS', NULL, 4, '传统生活用品', 1, NOW()); -- 文化内容分类初始数据 INSERT INTO `oroqen_culture_category` (`id`, `category_name`, `category_code`, `parent_id`, `sort_order`, `description`, `status`, `create_time`) VALUES ('1', '民族历史', 'ETHNIC_HISTORY', NULL, 1, '鄂伦春族历史文化', 1, NOW()), ('2', '传统节日', 'TRADITIONAL_FESTIVALS', NULL, 2, '鄂伦春族传统节日', 1, NOW()), ('3', '民间故事', 'FOLK_STORIES', NULL, 3, '鄂伦春族民间传说', 1, NOW()), ('4', '传统音乐', 'TRADITIONAL_MUSIC', NULL, 4, '鄂伦春族传统音乐', 1, NOW());