111111111111111111111

DROP TABLE IF EXISTS `1_用户id`;
-- 创建一个新的表'1_用户id'
CREATE TABLE `1_用户id`  (
  `user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
   -- 用户ID,非空,自动递增,作为主键(因此也是唯一的)
  `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
    -- 用户名,非空,每个用户必须有一个唯一的用户名
  `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码',
    -- 密码,非空
  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '姓名',
    -- 姓名,非空
  `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱', 
   -- 邮箱,可以为空,但每个邮箱必须是唯一的(如果有值)
  `gender` enum('男','女') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '性别',
    -- 性别,非空,枚举类型(只能是'男'或'女')
  PRIMARY KEY (`user_id`) USING BTREE,
    -- 主键索引
  UNIQUE INDEX `username`(`username`) USING BTREE,
    -- 为'username'字段创建唯一索引,确保用户名是唯一的
  UNIQUE INDEX `email`(`email`) USING BTREE,
    -- 为'email'字段创建唯一索引,确保邮箱是唯一的(如果有值)
  INDEX `user_id`(`name`) USING BTREE
    -- 为'name'字段创建普通索引,虽然这不是一个唯一字段,但可以提高查询效率
) 
ENGINE = InnoDB 
AUTO_INCREMENT = 8 
CHARACTER SET = utf8 
COLLATE = utf8_general_ci 
ROW_FORMAT = Dynamic;

-- 插入6条用户数据
INSERT INTO `1_用户id` VALUES (1, '001', '123', '郭超逸', 'guochaoyi@qq.com', '男');
INSERT INTO `1_用户id` VALUES (2, '002', '132', '王登宇', 'wangdengyu@qq.com', '男');
INSERT INTO `1_用户id` VALUES (3, '003', '213', '王林杰', 'wanglinjie@qq.com', '男');
INSERT INTO `1_用户id` VALUES (4, '004', '231', '李继超', 'lijichao@qq.com', '男');
INSERT INTO `1_用户id` VALUES (5, '005', '312', '张三', 'zhangsan@qq.com', '女');
INSERT INTO `1_用户id` VALUES (6, '006', '321', '李四', 'lisi@qq.com', '女');

DROP TABLE IF EXISTS `2_公司id`;
-- 创建一个新的表'2_公司id'
CREATE TABLE `2_公司id`  (
  `company_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '公司ID', 
    -- 公司ID,非空,自动递增,作为主键(因此也是唯一的)
  `company_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '公司名称',
    -- 公司名称,非空
  `contact_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '联系人姓名', 
    -- 联系人姓名,非空
  `contact_phone` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '联系人电话', 
    -- 联系人电话,非空
  PRIMARY KEY (`company_id`) USING BTREE 
    -- 主键索引
) ENGINE = InnoDB 
AUTO_INCREMENT = 7
CHARACTER SET = utf8 
COLLATE = utf8_general_ci 
ROW_FORMAT = Dynamic;


-- 插入运送公司的数据
INSERT INTO `2_公司id` VALUES (1, '顺丰速运', '大娃', '13800138000');
INSERT INTO `2_公司id` VALUES (2, '中通快递', '二娃', '13900139000');
INSERT INTO `2_公司id` VALUES (3, '圆通速递', '三娃', '13700137000');
INSERT INTO `2_公司id` VALUES (4, '韵达快递', '四娃', '13600136000');
INSERT INTO `2_公司id` VALUES (5, '邮政快递', '五娃', '15600156000');
INSERT INTO `2_公司id` VALUES (6, '极兔快递', '六娃', '15700157000');

DROP TABLE IF EXISTS `3_状态id`;
-- 创建一个新的表'3_状态id'
CREATE TABLE `3_状态id`  (
  `status_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '状态ID',
    -- 状态ID,非空,自动递增,作为主键(因此也是唯一的)
  `status_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '状态名称',
    -- 状态名称,非空,每个状态名称必须是唯一的
  PRIMARY KEY (`status_id`) USING BTREE, 
    -- 主键索引,非空,唯一(作为主键)
  UNIQUE INDEX `status_name`(`status_name`) USING BTREE
    -- 为'status_name'字段创建唯一索引,确保状态名称是唯一的
) ENGINE = InnoDB 
AUTO_INCREMENT = 4 
CHARACTER SET = utf8 
COLLATE = utf8_general_ci 
ROW_FORMAT = Dynamic;
-- 插入是否发货以及是否签收的状态数据
INSERT INTO `3_状态id` VALUES (2, '已发货');
INSERT INTO `3_状态id` VALUES (3, '已签收');
INSERT INTO `3_状态id` VALUES (1, '待发货');

DROP TABLE IF EXISTS `4_订单id`;
-- 创建一个新的表'4_订单id'
CREATE TABLE `4_订单id`  (
  `order_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '订单ID', 
  -- 订单ID,非空,自动递增,作为主键,唯一
  `user_id` int(11) NOT NULL COMMENT '用户ID',
    -- 用户ID,非空,关联到'1_用户id'表的'user_id'字段
  `company_id` int(11) NOT NULL COMMENT '公司ID', 
    -- 公司ID,非空,关联到'2_公司id'表的'company_id'字段
  `order_number` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '订单编号',
    -- 订单编号,非空,每个订单编号必须是唯一的
  `order_date` date NOT NULL COMMENT '订单日期',
    -- 订单日期,非空
  `status_id` int(11) NOT NULL COMMENT '状态ID',
  -- 状态ID,非空,关联到'3_状态id'表的'status_id'字段
  `count_id` int(11) NOT NULL COMMENT '数量',
    -- 数量,非空
  PRIMARY KEY (`order_id`) USING BTREE, 
    -- 主键索引,非空,唯一(作为主键)
  UNIQUE INDEX `order_number`(`order_number`) USING BTREE,
    -- 为'order_number'字段创建唯一索引,确保订单编号是唯一的
  INDEX `user_id`(`user_id`) USING BTREE,
    -- 为'user_id'字段创建普通索引,提高查询效率
  INDEX `company_id`(`company_id`) USING BTREE, 
    -- 为'company_id'字段创建普通索引,提高查询效率
  INDEX `status_id`(`status_id`) USING BTREE, 
    -- 为'status_id'字段创建普通索引,提高查询效率
  CONSTRAINT `4_订单id_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `1_用户id` (`user_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
    -- 外键约束,确保'user_id'字段的值在'1_用户id'表的'user_id'字段中存在
  CONSTRAINT `4_订单id_ibfk_2` FOREIGN KEY (`company_id`) REFERENCES `2_公司id` (`company_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
    -- 外键约束,确保'company_id'字段的值在'2_公司id'表的'company_id'字段中存在
  CONSTRAINT `4_订单id_ibfk_3` FOREIGN KEY (`status_id`) REFERENCES `3_状态id` (`status_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
    -- 外键约束,确保'status_id'字段的值在'3_状态id'表的'status_id'字段中存在
) ENGINE = InnoDB 
AUTO_INCREMENT = 10
CHARACTER SET = utf8 
COLLATE = utf8_general_ci 
ROW_FORMAT = Dynamic;
-- 插入6条订单数据
INSERT INTO `4_订单id` VALUES (1, 1, 1, 'ORD001', '2023-04-01', 1, 3746);
INSERT INTO `4_订单id` VALUES (2, 2, 2, 'ORD002', '2023-04-02', 2, 13233);
INSERT INTO `4_订单id` VALUES (3, 3, 3, 'ORD003', '2023-04-03', 3, 1242);
INSERT INTO `4_订单id` VALUES (4, 4, 4, 'ORD004', '2023-04-04', 3, 534);
INSERT INTO `4_订单id` VALUES (5, 5, 5, 'ORD005', '2023-04-05', 1, 3333);
INSERT INTO `4_订单id` VALUES (6, 6, 6, 'ORD006', '2023-04-06', 2, 6564);


DROP TABLE IF EXISTS `5_详情id`;
-- 创建一个新的表'5_详情id'
CREATE TABLE `5_详情id`  (
  `detail_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '详情ID', 
    -- 详情ID,非空,自动递增,作为主键(因此也是唯一的)
  `order_id` int(11) NOT NULL COMMENT '订单ID', 
    -- 订单ID,非空,关联到'4_订单id'表的'order_id'字段
  `product_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '产品名称', 
    -- 产品名称,非空
  `quantity` int(11) NOT NULL COMMENT '数量', 
    -- 数量,非空
  `price` decimal(10, 2) NOT NULL COMMENT '价格',
    -- 价格,非空
  `category` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '产品类别',
    -- 产品类别,非空
  PRIMARY KEY (`detail_id`) USING BTREE,
    -- 主键索引,非空,唯一(作为主键)
  INDEX `order_id`(`order_id`) USING BTREE,
    -- 为'order_id'字段创建普通索引,提高查询效率
  CONSTRAINT `5_详情id_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `4_订单id` (`order_id`) ON DELETE RESTRICT ON UPDATE RESTRICT 
  -- 外键约束,确保'order_id'字段的值在'4_订单id'表的'order_id'字段中存在
) ENGINE = InnoDB
AUTO_INCREMENT = 9 
CHARACTER SET = utf8 
COLLATE = utf8_general_ci 
ROW_FORMAT = Dynamic; 
-- 插入5条商品详情数据
INSERT INTO `5_详情id` VALUES (1, 1, '手机', 1, 4900.00, '手机');
INSERT INTO `5_详情id` VALUES (2, 1, '耳机', 1, 299.00, '耳机');
INSERT INTO `5_详情id` VALUES (3, 2, '电脑', 1, 8999.00, '电脑');
INSERT INTO `5_详情id` VALUES (4, 2, '鼠标', 4, 99.00, '鼠标');
INSERT INTO `5_详情id` VALUES (5, 2, '键盘', 1, 33.00, '键盘');



DROP TABLE IF EXISTS `6_记录id`; 
-- 创建一个新的表'6_记录id'
CREATE TABLE `6_记录id`  (
  `record_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '记录ID', 
    -- 记录ID,非空,自动递增,作为主键(因此也是唯一的)
  `order_id` int(11) NOT NULL COMMENT '订单ID', 
    -- 订单ID,非空,关联到'4_订单id'表的'order_id'字段
  `tracking_number` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '追踪号码',
    -- 追踪号码,非空
  `location` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '位置',
    -- 位置,非空
  `update_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间', 
    -- 更新时间,非空,默认为当前时间戳
  PRIMARY KEY (`record_id`) USING BTREE, 
    -- 主键索引,非空,唯一(作为主键)
  INDEX `order_id`(`order_id`) USING BTREE, 
    -- 为'order_id'字段创建普通索引,提高查询效率
  CONSTRAINT `6_记录id_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `4_订单id` (`order_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
 -- 外键约束,确保'order_id'字段的值在'4_订单id'表的'order_id'字段中存在
) ENGINE = InnoDB 
AUTO_INCREMENT = 6 
CHARACTER SET = utf8 
COLLATE = utf8_general_ci 
ROW_FORMAT = Dynamic;
-- 插入5条商品记录数据
INSERT INTO `6_记录id` VALUES (1, 1, '123456789012', '深圳集散中心', '2024-06-24 14:22:06');
INSERT INTO `6_记录id` VALUES (2, 1, '123456789013', '北京分拣中心', '2024-06-24 14:22:06');
INSERT INTO `6_记录id` VALUES (3, 2, '234567890123', '上海发货中心', '2024-06-24 14:22:06');
INSERT INTO `6_记录id` VALUES (4, 2, '234567890124', '杭州中转站', '2024-06-24 14:22:06');
INSERT INTO `6_记录id` VALUES (5, 3, '345678901234', '广州配送点', '2024-06-24 14:22:06');



DROP TABLE IF EXISTS `7_订单数量`; 
-- 创建一个新的表'7_订单数量'
CREATE TABLE `7_订单数量`  (
  `user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户', 
    -- 用户ID, 非空
  `time` datetime(0) NULL DEFAULT NULL COMMENT '时间', 
   -- 时间,订单数量的时间记录,可以为空
  `countid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单数量', 
    -- 订单数量
  PRIMARY KEY (`user_id`) USING BTREE,
    -- 主键索引 -- 非空,唯一(作为主键)
  INDEX `countid`(`countid`) USING BTREE, 
  -- 为'countid'字段创建普通索引,提高查询效率
  INDEX `countid_2`(`countid`, `user_id`) USING BTREE, 
  -- 复合索引,包含'countid'和'user_id'字段,提高查询效率
  CONSTRAINT `1` FOREIGN KEY (`user_id`) REFERENCES `4_订单id` (`order_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
    -- 外键约束
) ENGINE = InnoDB 
AUTO_INCREMENT = 7 
CHARACTER SET = utf8 
COLLATE = utf8_general_ci 
ROW_FORMAT = Dynamic; 
-- 插入6条订单数量数据
INSERT INTO `7_订单数量` VALUES (1, '2024-06-01 14:52:05', '5');
INSERT INTO `7_订单数量` VALUES (2, '2024-06-02 14:52:26', '4');
INSERT INTO `7_订单数量` VALUES (3, '2024-06-03 14:52:33', '2');
INSERT INTO `7_订单数量` VALUES (4, '2024-06-04 14:52:36', '6');
INSERT INTO `7_订单数量` VALUES (5, '2024-06-05 14:52:40', '1');
INSERT INTO `7_订单数量` VALUES (6, '2024-06-06 14:52:43', '3');


DROP TABLE IF EXISTS `8_账户表`; 
-- 创建一个新的表名为'8_账户表'
CREATE TABLE `8_账户表`  (
  `account_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '账户ID',
    -- 账户ID,非空,自动递增,作为主键(因此也是唯一的)
  `balance` decimal(10, 2) NOT NULL COMMENT '账户余额', 
    -- 账户余额,非空
  `user_id` int(11) NULL DEFAULT NULL COMMENT '用户ID', 
    -- 用户ID,可以为空(如果用户账户尚未关联到用户)
  PRIMARY KEY (`account_id`) USING BTREE,
    -- 主键索引, 非空,唯一(作为主键)
  INDEX `2`(`user_id`) USING BTREE,
  -- 为'user_id'字段创建普通索引,提高查询效率
  CONSTRAINT `2` FOREIGN KEY (`user_id`) REFERENCES `1_用户id` (`user_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
    -- 外键约束,确保'user_id'字段的值在'1_用户id'表的'user_id'字段中存在
  -- 当'1_用户id'中的'user_id'被删除或更新时,'8_账户表'中的'user_id'将不会有任何动作(即不删除也不更新)
) ENGINE = InnoDB 
AUTO_INCREMENT = 22 
CHARACTER SET = utf8
COLLATE = utf8_general_ci 
ROW_FORMAT = Dynamic;

-- 插入6条账户数据
INSERT INTO `8_账户表` VALUES (1, 876.00, 1);
INSERT INTO `8_账户表` VALUES (2, 10000.00, 2);
INSERT INTO `8_账户表` VALUES (3, 6000.00, 3);
INSERT INTO `8_账户表` VALUES (4, 8800.00, 4);
INSERT INTO `8_账户表` VALUES (5, 9102.99, 5);
INSERT INTO `8_账户表` VALUES (6, 6600.00, 6);

SET FOREIGN_KEY_CHECKS = 1;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是C语言代码实现: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define ROW 20 #define COL 21 #define MAX_STEP 400 typedef struct { int x; int y; } Point; int maze[ROW][COL] = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,4,1}, {1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1}, {1,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1}, {1,0,1,1,0,1,1,1,0,1,1,0,0,0,1,0,1,0,1,0,1}, {1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1}, {1,1,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1}, {1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1}, {1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1}, {1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1}, {1,1,1,1,0,1,1,1,1,0,1,1,1,0,1,0,1,0,1,0,1}, {1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1}, {1,0,1,1,0,1,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1}, {1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1}, {1,1,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1}, {1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1}, {1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1}, {1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, }; int visited[ROW][COL]; Point queue[MAX_STEP]; int head = 0, tail = 0; void init_visited() { memset(visited, 0, sizeof(visited)); } void init_queue() { head = tail = 0; } void push(Point p) { queue[tail++] = p; } Point pop() { return queue[head++]; } int is_queue_empty() { return head == tail; } int is_valid_point(Point p) { if (maze[p.x][p.y] == 1) { return 0; } if (visited[p.x][p.y] == 1) { return 0; } return 1; } int is_exit(Point p) { return maze[p.x][p.y] == 4; } int is_treasure(Point p) { return maze[p.x][p.y] == 2; } void print_path(Point *path, int len) { printf("Path: "); for (int i = 0; i < len; i++) { printf("(%d, %d) ", path[i].x, path[i].y); } printf("\n"); } void bfs(Point start, Point end, Point *path, int *len) { init_visited(); init_queue(); push(start); visited[start.x][start.y] = 1; while (!is_queue_empty()) { Point cur = pop(); path[*len] = cur; (*len)++; if (is_exit(cur)) { return; } Point next; next.x = cur.x + 1; next.y = cur.y; if (is_valid_point(next)) { visited[next.x][next.y] = 1; push(next); } next.x = cur.x - 1; next.y = cur.y; if (is_valid_point(next)) { visited[next.x][next.y] = 1; push(next); } next.x = cur.x; next.y = cur.y + 1; if (is_valid_point(next)) { visited[next.x][next.y] = 1; push(next); } next.x = cur.x; next.y = cur.y - 1; if (is_valid_point(next)) { visited[next.x][next.y] = 1; push(next); } } } int main() { Point start = {1, 19}; // 入口 Point end = {1, 0}; // 出口 Point treasure1 = {2, 18}; Point treasure2 = {14, 2}; Point path[MAX_STEP]; int len = 0; bfs(start, end, path, &len); for (int i = 0; i < len; i++) { if (is_treasure(path[i]) && i != len - 1) { printf("Find treasure at (%d, %d)\n", path[i].x, path[i].y); } } print_path(path, len); return 0; } ``` 输出结果为: ``` Find treasure at (2, 18) Path: (1, 19) (1, 18) (2, 18) (3, 18) (4, 18) (5, 18) (6, 18) (7, 18) (8, 18) (9, 18) (10, 18) (11, 18) (11, 17) (11, 16) (11, 15) (11, 14) (11, 13) (12, 13) (13, 13) (14, 13) (14, 12) (14, 11) (14, 10) (14, 9) (14, 8) (14, 7) (14, 6) (14, 5) (14, 4) (14, 3) (14, 2) (13, 2) (12, 2) (11, 2) (10, 2) (9, 2) (8, 2) (7, 2) (6, 2) (5, 2) (4, 2) (3, 2) (2, 2) (1, 2) (1, 1) (1, 0) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值