create_all_tables.sql 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. -- ============================================================
  2. -- SmartBizTrip 全量建表脚本
  3. -- 合并所有业务表的 CREATE TABLE 语句
  4. -- 数据库: biztrip_rag
  5. -- ============================================================
  6. SET NAMES utf8mb4;
  7. DROP DATABASE IF EXISTS biztrip_rag;
  8. CREATE DATABASE biztrip_rag CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  9. USE biztrip_rag;
  10. -- ==================== 高铁票表 ====================
  11. DROP TABLE IF EXISTS train_tickets;
  12. CREATE TABLE train_tickets (
  13. id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键,自增,唯一标识每条记录',
  14. departure_city VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '出发城市(如"北京")',
  15. arrival_city VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '到达城市(如"上海")',
  16. departure_time DATETIME NOT NULL COMMENT '出发时间',
  17. arrival_time DATETIME NOT NULL COMMENT '到达时间',
  18. train_number VARCHAR(20) NOT NULL COMMENT '火车车次(如"G1001")',
  19. seat_type VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '座位类型(如"二等座")',
  20. total_seats INT NOT NULL COMMENT '总座位数',
  21. remaining_seats INT NOT NULL COMMENT '剩余座位数',
  22. price DECIMAL(10, 2) NOT NULL COMMENT '票价(如 553.50)',
  23. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间,自动记录插入时间',
  24. UNIQUE KEY unique_train (departure_time, train_number, seat_type)
  25. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='高铁票信息表';
  26. -- ==================== 航班票务表 ====================
  27. DROP TABLE IF EXISTS flight_tickets;
  28. CREATE TABLE flight_tickets (
  29. id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键,自增,唯一标识每条记录',
  30. departure_city VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '出发城市',
  31. arrival_city VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '到达城市',
  32. departure_time DATETIME NOT NULL COMMENT '出发时间',
  33. arrival_time DATETIME NOT NULL COMMENT '到达时间',
  34. flight_number VARCHAR(20) NOT NULL COMMENT '航班号(如"CA1234")',
  35. cabin_type VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '舱位类型(如"经济舱")',
  36. total_seats INT NOT NULL COMMENT '总座位数',
  37. remaining_seats INT NOT NULL COMMENT '剩余座位数',
  38. price DECIMAL(10, 2) NOT NULL COMMENT '票价',
  39. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间,自动记录插入时间',
  40. UNIQUE KEY unique_flight (departure_time, flight_number, cabin_type)
  41. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='航班票务信息表';
  42. -- ==================== 会展门票表 ====================
  43. DROP TABLE IF EXISTS event_tickets;
  44. CREATE TABLE event_tickets (
  45. id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键,自增',
  46. event_name VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '活动名称',
  47. city VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '举办城市',
  48. venue VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '场馆',
  49. start_time DATETIME NOT NULL COMMENT '开始时间',
  50. end_time DATETIME NOT NULL COMMENT '结束时间',
  51. ticket_type VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '票类型(如"VIP")',
  52. total_seats INT NOT NULL COMMENT '总座位数',
  53. remaining_seats INT NOT NULL COMMENT '剩余座位数',
  54. price DECIMAL(10, 2) NOT NULL COMMENT '票价',
  55. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  56. UNIQUE KEY unique_event (start_time, event_name, ticket_type)
  57. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会展门票信息表';
  58. -- ==================== 天气数据表 ====================
  59. DROP TABLE IF EXISTS weather_data;
  60. CREATE TABLE IF NOT EXISTS weather_data (
  61. id INT AUTO_INCREMENT PRIMARY KEY,
  62. city VARCHAR(50) NOT NULL COMMENT '城市名称',
  63. fx_date DATE NOT NULL COMMENT '预报日期',
  64. sunrise TIME COMMENT '日出时间',
  65. sunset TIME COMMENT '日落时间',
  66. moonrise TIME COMMENT '月升时间',
  67. moonset TIME COMMENT '月落时间',
  68. moon_phase VARCHAR(20) COMMENT '月相名称',
  69. moon_phase_icon VARCHAR(10) COMMENT '月相图标代码',
  70. temp_max INT COMMENT '最高温度',
  71. temp_min INT COMMENT '最低温度',
  72. icon_day VARCHAR(10) COMMENT '白天天气图标代码',
  73. text_day VARCHAR(20) COMMENT '白天天气描述',
  74. icon_night VARCHAR(10) COMMENT '夜间天气图标代码',
  75. text_night VARCHAR(20) COMMENT '夜间天气描述',
  76. wind360_day INT COMMENT '白天风向360角度',
  77. wind_dir_day VARCHAR(20) COMMENT '白天风向',
  78. wind_scale_day VARCHAR(10) COMMENT '白天风力等级',
  79. wind_speed_day INT COMMENT '白天风速 (km/h)',
  80. wind360_night INT COMMENT '夜间风向360角度',
  81. wind_dir_night VARCHAR(20) COMMENT '夜间风向',
  82. wind_scale_night VARCHAR(10) COMMENT '夜间风力等级',
  83. wind_speed_night INT COMMENT '夜间风速 (km/h)',
  84. precip DECIMAL(5,1) COMMENT '降水量 (mm)',
  85. uv_index INT COMMENT '紫外线指数',
  86. humidity INT COMMENT '相对湿度 (%)',
  87. pressure INT COMMENT '大气压强 (hPa)',
  88. vis INT COMMENT '能见度 (km)',
  89. cloud INT COMMENT '云量 (%)',
  90. update_time DATETIME COMMENT '数据更新时间',
  91. UNIQUE KEY unique_city_date (city, fx_date)
  92. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='天气数据表';
  93. -- ==================== 商务用车表 ====================
  94. DROP TABLE IF EXISTS car_rentals;
  95. CREATE TABLE car_rentals (
  96. id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键,自增',
  97. company VARCHAR(50) NOT NULL COMMENT '商务用车公司名称',
  98. pickup_city VARCHAR(50) NOT NULL COMMENT '取车城市',
  99. return_city VARCHAR(50) NOT NULL COMMENT '还车城市',
  100. pickup_date DATE NOT NULL COMMENT '取车日期',
  101. car_type VARCHAR(20) NOT NULL COMMENT '车型分类:经济型/SUV/豪华型/MPV',
  102. car_model VARCHAR(50) NOT NULL COMMENT '具体车型',
  103. price_per_day DECIMAL(8,2) NOT NULL COMMENT '每日租金(元)',
  104. total_available INT NOT NULL DEFAULT 0 COMMENT '可用车辆数',
  105. transmission VARCHAR(20) NOT NULL COMMENT '变速箱:自动挡/手动挡',
  106. seats INT NOT NULL COMMENT '座位数',
  107. deposit DECIMAL(8,2) NOT NULL DEFAULT 0 COMMENT '押金(元)',
  108. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  109. UNIQUE KEY unique_car (company, car_model, pickup_date)
  110. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商务用车信息表';
  111. -- ==================== 保险表 ====================
  112. DROP TABLE IF EXISTS insurances;
  113. CREATE TABLE insurances (
  114. id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键,自增',
  115. insurance_type VARCHAR(20) NOT NULL COMMENT '保险类型:综合型/意外型/医疗型/境外型',
  116. name VARCHAR(100) NOT NULL COMMENT '保险产品名称',
  117. company VARCHAR(50) NOT NULL COMMENT '保险公司',
  118. coverage TEXT NOT NULL COMMENT '保障范围说明',
  119. price DECIMAL(8,2) NOT NULL COMMENT '价格(元/份)',
  120. duration_days INT NOT NULL COMMENT '保障天数',
  121. max_coverage DECIMAL(10,2) NOT NULL COMMENT '最高赔付金额(元)',
  122. medical_coverage DECIMAL(10,2) DEFAULT 0 COMMENT '医疗保障额度(元)',
  123. baggage_coverage DECIMAL(10,2) DEFAULT 0 COMMENT '行李保障额度(元)',
  124. flight_delay BOOLEAN DEFAULT FALSE COMMENT '是否包含航班延误',
  125. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  126. UNIQUE KEY unique_insurance (name)
  127. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='差旅保险信息表';
  128. -- ==================== 用户偏好表 ====================
  129. CREATE TABLE IF NOT EXISTS user_profiles (
  130. profile_key VARCHAR(50) NOT NULL COMMENT '偏好键名',
  131. profile_value VARCHAR(200) NOT NULL COMMENT '偏好值',
  132. updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  133. PRIMARY KEY (profile_key)
  134. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户偏好';
  135. -- ==================== 查询历史表 ====================
  136. CREATE TABLE IF NOT EXISTS query_history (
  137. id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
  138. intent_type VARCHAR(30) NOT NULL COMMENT '意图类型:weather/flight/train等',
  139. query_content TEXT NOT NULL COMMENT '查询内容JSON',
  140. query_time DATETIME NOT NULL COMMENT '查询时间',
  141. INDEX idx_time (query_time)
  142. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='查询历史';
  143. -- ==================== 短期对话表 ====================
  144. CREATE TABLE IF NOT EXISTS short_term_messages (
  145. id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
  146. role VARCHAR(10) NOT NULL COMMENT '消息角色:user 或 assistant',
  147. content TEXT NOT NULL COMMENT '消息内容',
  148. message_time VARCHAR(10) NOT NULL COMMENT '时间戳 HH:MM:SS',
  149. message_order INT NOT NULL COMMENT '消息顺序号',
  150. updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
  151. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='短期对话';