dashboard.sql 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586
  1. -- department
  2. CREATE TABLE `department`
  3. (
  4. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '部门ID',
  5. `code` VARCHAR(10) NOT NULL COMMENT '部门编码',
  6. `name` VARCHAR(30) DEFAULT NULL COMMENT '部门名称',
  7. `unique_id` VARCHAR(100) NOT NULL COMMENT '唯一标识符',
  8. `sync_trace_id` DATETIME NOT NULL COMMENT '同步时间',
  9. PRIMARY KEY (`id`),
  10. UNIQUE KEY `uk_department_code` (`code`),
  11. UNIQUE KEY `uk_department_unique_id` (`unique_id`),
  12. INDEX `idx_department_sync_time` (`sync_trace_id`)
  13. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='部门信息表';
  14. -- park
  15. CREATE TABLE `park`
  16. (
  17. `id` BIGINT NOT NULL AUTO_INCREMENT,
  18. `code` VARCHAR(20) NOT NULL,
  19. `name` VARCHAR(60) NOT NULL,
  20. `synch_time` DATETIME NOT NULL,
  21. `sync_trace_id` VARCHAR(100) NOT NULL,
  22. PRIMARY KEY (`id`),
  23. UNIQUE KEY `uk_park_code` (`code`),
  24. UNIQUE KEY `uk_park_sync_trace_id` (`sync_trace_id`),
  25. INDEX `idx_park_synch_time` (`synch_time`)
  26. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  27. -- hotel
  28. CREATE TABLE `hotel`
  29. (
  30. `id` BIGINT NOT NULL AUTO_INCREMENT,
  31. `code` VARCHAR(10) NOT NULL,
  32. `name` VARCHAR(30),
  33. `synch_time` DATETIME NOT NULL,
  34. `sync_trace_id` VARCHAR(100) NOT NULL,
  35. PRIMARY KEY (`id`),
  36. UNIQUE KEY `uk_hotel_code` (`code`),
  37. UNIQUE KEY `uk_hotel_sync_trace_id` (`sync_trace_id`),
  38. INDEX `idx_hotel_synch_time` (`synch_time`)
  39. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  40. -- kpi_revenue_attendance
  41. CREATE TABLE `kpi_revenue_attendance`
  42. (
  43. `id` BIGINT NOT NULL AUTO_INCREMENT,
  44. `park_code` VARCHAR(32) NOT NULL COMMENT '1.YI 2.SWAD 3.FWAD 4.YWW 5.WBW 6.QAW 7.CLYMB 8.TeamLab',
  45. `date` DATETIME NOT NULL,
  46. `attendance` INT,
  47. `onsite_concierge_revenue` DECIMAL(24, 6) COMMENT 'AED',
  48. `revenue_generated` DECIMAL(24, 6) COMMENT 'AED',
  49. `ap_visitors` INT,
  50. `vip_visitors` INT,
  51. `synch_time` DATETIME NOT NULL,
  52. `sync_trace_id` VARCHAR(100) NOT NULL,
  53. PRIMARY KEY (`id`),
  54. UNIQUE KEY `uk_kpi_revenue_attendance_date` (`park_code`, `date`),
  55. INDEX `idx_kpi_date` (`date`),
  56. INDEX `idx_kpi_sync` (`synch_time`, `sync_trace_id`)
  57. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  58. -- kpi_concierge
  59. CREATE TABLE `kpi_concierge`
  60. (
  61. `id` bigint NOT NULL AUTO_INCREMENT,
  62. `department` varchar(10) DEFAULT NULL,
  63. `date` datetime NOT NULL,
  64. `revenue_generated` int DEFAULT NULL COMMENT 'AED',
  65. `call_sla` decimal(24, 6) DEFAULT NULL,
  66. `call_offered` int DEFAULT NULL,
  67. `call_waiting` int DEFAULT NULL,
  68. `call_capacity` int DEFAULT NULL,
  69. `call_occupancy` int DEFAULT NULL,
  70. `call_abandonment` int DEFAULT NULL,
  71. `call_aht` int DEFAULT NULL COMMENT 'mins',
  72. `call_cast` decimal(5, 2) DEFAULT NULL,
  73. `chatbot_sla` decimal(24, 6) DEFAULT NULL,
  74. `chatbot_contacts_offered` int DEFAULT NULL,
  75. `chatbot_transfers` int DEFAULT NULL,
  76. `synch_time` datetime NOT NULL,
  77. `sync_trace_id` varchar(100) NOT NULL,
  78. PRIMARY KEY (`id`),
  79. UNIQUE KEY `uk_kpi_concierge_date` (`department`,`date`),
  80. KEY `idx_kpi_date` (`date`),
  81. KEY `idx_kpi_sync` (`synch_time`,`sync_trace_id`)
  82. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  83. -- google_reviews_post
  84. CREATE TABLE `google_reviews_post`
  85. (
  86. `id` int NOT NULL AUTO_INCREMENT,
  87. `subject` varchar(255) DEFAULT NULL,
  88. `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci,
  89. `content_url` varchar(255) DEFAULT NULL COMMENT 'content_url',
  90. `avatar_url` varchar(255) DEFAULT NULL,
  91. `like_num` int DEFAULT '0',
  92. `comment_count` int DEFAULT '0',
  93. `review_date` datetime DEFAULT NULL,
  94. `reposts` int DEFAULT '0',
  95. `park_code` varchar(10) DEFAULT NULL,
  96. `synch_time` datetime NOT NULL,
  97. `sync_trace_id` varchar(100) NOT NULL,
  98. PRIMARY KEY (`id`),
  99. KEY `idx_review_park` (`park_code`),
  100. KEY `idx_review_date` (`review_date`),
  101. KEY `idx_review_sync` (`synch_time`),
  102. FULLTEXT KEY `idx_review_content` (`subject`,`content`)
  103. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  104. -- kpi_social_media_sentimental
  105. CREATE TABLE `kpi_social_media_sentimental`
  106. (
  107. `id` BIGINT NOT NULL AUTO_INCREMENT,
  108. `park_code` VARCHAR(20) NOT NULL,
  109. `date` DATETIME NOT NULL,
  110. `google_review` decimal(24, 6) default null,
  111. `trip_advisor` decimal(24, 6) default null,
  112. `google_evaluation_word` TEXT,
  113. `trip_advisor_evaluation_word` TEXT,
  114. `synch_time` DATETIME NOT NULL,
  115. `sync_trace_id` VARCHAR(100) NOT NULL,
  116. PRIMARY KEY (`id`),
  117. UNIQUE KEY `uk_kpi_social_media_sentimental_date` (`park_code`, `date`),
  118. INDEX `idx_sentiment_date` (`date`),
  119. INDEX `idx_sentiment_sync` (`synch_time`),
  120. FULLTEXT INDEX `idx_sentiment_words` (`google_evaluation_word`, `trip_advisor_evaluation_word`)
  121. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  122. -- kpi_digital_gx
  123. CREATE TABLE `kpi_digital_gx`
  124. (
  125. `id` BIGINT NOT NULL AUTO_INCREMENT,
  126. `app_uptime` DATETIME,
  127. `downtime_notification` INT DEFAULT 0,
  128. `current_app_sessions` INT DEFAULT 0,
  129. `most_used_screens` VARCHAR(255),
  130. `avg_timespend` DECIMAL(24, 6) COMMENT 'Average time in minutes',
  131. `app_revenue` DECIMAL(24, 6),
  132. `yas_app_csat` DECIMAL(24, 6) COMMENT 'Customer Satisfaction Score (0-100)',
  133. `synch_time` DATETIME NOT NULL,
  134. `sync_trace_id` VARCHAR(100) NOT NULL,
  135. PRIMARY KEY (`id`),
  136. INDEX `idx_digital_uptime` (`app_uptime`),
  137. INDEX `idx_digital_sync` (`synch_time`, `sync_trace_id`)
  138. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  139. -- kpi_yas_island_campaigns
  140. CREATE TABLE `kpi_yas_island_campaigns`
  141. (
  142. `id` BIGINT NOT NULL AUTO_INCREMENT,
  143. `mtd_campaigns` INT,
  144. `total_campaign_email_sent` INT,
  145. `delivered` INT,
  146. `email_open_rate` DECIMAL(24, 6),
  147. `click_rate` DECIMAL(24, 6),
  148. `annual_passholders_total` INT,
  149. `renewed` INT,
  150. `expired` INT,
  151. `date` DATETIME,
  152. `synch_time` DATETIME NOT NULL,
  153. `sync_trace_id` VARCHAR(100) NOT NULL,
  154. PRIMARY KEY (`id`),
  155. UNIQUE KEY `uk_campaign_date` (`date`),
  156. INDEX `idx_sync_info` (`synch_time`, `sync_trace_id`)
  157. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  158. -- kpi_journey_touch_point
  159. CREATE TABLE `kpi_journey_touch_point`
  160. (
  161. `id` BIGINT NOT NULL AUTO_INCREMENT,
  162. `park_code` VARCHAR(32) NOT NULL COMMENT '1.YI 2.SWAD 3.FWAD 4.YWW 5.WBW 6.QAW 7.CLYMB 8.TeamLab',
  163. `experience_project` VARCHAR(100),
  164. `value` DECIMAL(24, 6),
  165. `date` DATETIME,
  166. `synch_time` DATETIME NOT NULL,
  167. `sync_trace_id` VARCHAR(100) NOT NULL,
  168. PRIMARY KEY (`id`),
  169. UNIQUE KEY `uk_journey_touch_point_date_parkcode_exp` (`date`,`park_code`,`experience_project`),
  170. INDEX `idx_sync_info` (`synch_time`, `sync_trace_id`)
  171. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  172. -- kpi_park_guest_experience
  173. CREATE TABLE `kpi_park_guest_experience`
  174. (
  175. `id` bigint NOT NULL AUTO_INCREMENT,
  176. `park_code` varchar(20) DEFAULT NULL,
  177. `gss` decimal(24, 6) DEFAULT NULL,
  178. `nps` decimal(24, 6) DEFAULT NULL,
  179. `new_vog_measurements` decimal(24, 6) DEFAULT NULL,
  180. `happiness_meters` decimal(24, 6) DEFAULT NULL,
  181. `queue_time` decimal(24, 6) DEFAULT NULL,
  182. `park_ticket_type` varchar(255) DEFAULT NULL,
  183. `date` datetime DEFAULT NULL,
  184. `visitor_origin` varchar(30) DEFAULT NULL,
  185. `sentiment` varchar(20) DEFAULT NULL,
  186. `revenue` decimal(24, 6) DEFAULT NULL,
  187. `synch_time` datetime NOT NULL,
  188. `sync_trace_id` varchar(100) NOT NULL,
  189. `project` varchar(100) NOT NULL COMMENT 'project',
  190. PRIMARY KEY (`id`),
  191. UNIQUE KEY `uk_park_guest_experience_date_parkcode_project` (`date`,`park_code`,`project`),
  192. KEY `idx_date` (`date`),
  193. KEY `idx_visitor_origin` (`visitor_origin`),
  194. KEY `idx_sentiment` (`sentiment`),
  195. KEY `idx_sync` (`synch_time`,`sync_trace_id`)
  196. ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  197. -- kpi_hotel
  198. CREATE TABLE `kpi_hotel`
  199. (
  200. `id` BIGINT NOT NULL AUTO_INCREMENT,
  201. `hotel_code` VARCHAR(255),
  202. `gss` DECIMAL(24, 6),
  203. `gss_yesterday` DECIMAL(24, 6),
  204. `nps` DECIMAL(24, 6),
  205. `nps_yesterday` DECIMAL(24, 6),
  206. `check_in` INT,
  207. `booking` INT,
  208. `datetime` DATETIME,
  209. `synch_time` DATETIME NOT NULL,
  210. `sync_trace_id` VARCHAR(100) NOT NULL,
  211. PRIMARY KEY (`id`),
  212. UNIQUE KEY `uk_hotel_datetime` (`hotel_code`, `datetime`),
  213. INDEX `idx_datetime` (`datetime`),
  214. INDEX `idx_sync` (`synch_time`, `sync_trace_id`)
  215. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  216. -- kpi park
  217. CREATE TABLE `kpi_park`
  218. (
  219. `id` BIGINT NOT NULL AUTO_INCREMENT,
  220. `park_code` VARCHAR(255),
  221. `gss` DECIMAL(24, 6),
  222. `gss_yesterday` DECIMAL(24, 6),
  223. `nps` DECIMAL(24, 6),
  224. `nps_yesterday` DECIMAL(24, 6),
  225. `visitor_in_park` INT,
  226. `total_attendance` INT,
  227. `datetime` DATETIME,
  228. `synch_time` DATETIME NOT NULL,
  229. `sync_trace_id` VARCHAR(100) NOT NULL,
  230. PRIMARY KEY (`id`),
  231. UNIQUE KEY `uk_kpi_park_datetime` (`park_code`, `datetime`),
  232. INDEX `idx_datetime` (`datetime`),
  233. INDEX `idx_sync` (`synch_time`, `sync_trace_id`)
  234. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  235. -- kpi_visitor_country_breakdown
  236. CREATE TABLE `kpi_visitor_country_breakdown`
  237. (
  238. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  239. `park_code` VARCHAR(20) NOT NULL COMMENT '园区代码',
  240. `country` VARCHAR(50) NOT NULL COMMENT '国家名称',
  241. `visitor_count` INT UNSIGNED NOT NULL COMMENT '游客数量',
  242. `percentage` DECIMAL(5, 2) NOT NULL COMMENT '占比百分比(%)',
  243. `data_date` DATE NOT NULL COMMENT '数据日期(YYYY-MM-DD)',
  244. `synch_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据同步时间',
  245. `women` INT UNSIGNED NOT NULL COMMENT '女生',
  246. `man` INT UNSIGNED NOT NULL COMMENT '男生',
  247. `sync_trace_id` VARCHAR(100) NOT NULL COMMENT '同步追踪ID',
  248. PRIMARY KEY (`id`),
  249. UNIQUE KEY `uk_country_date` (`park_code`,`country`, `data_date`) COMMENT '同一个园区同一国家同一天数据唯一',
  250. KEY `idx_data_date` (`data_date`) COMMENT '按日期查询索引'
  251. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='游客按居住国家分布统计';
  252. -- kpi_transport
  253. CREATE TABLE IF NOT EXISTS kpi_transport
  254. (
  255. id
  256. BIGINT
  257. NOT
  258. NULL
  259. AUTO_INCREMENT
  260. COMMENT
  261. '主键ID',
  262. on_time_rate
  263. DECIMAL
  264. (
  265. 5,
  266. 2
  267. ) NOT NULL COMMENT '准点率(%)',
  268. on_schedule_rate DECIMAL
  269. (
  270. 5,
  271. 2
  272. ) NOT NULL COMMENT '准点率(冗余字段,与on_time_rate一致)',
  273. line_count INT NOT NULL COMMENT '线路数量(条)',
  274. passenger_count INT NOT NULL COMMENT '乘客数量(万人)',
  275. bus_count INT NOT NULL COMMENT '公交车数量(辆)',
  276. on_time_rate_change DECIMAL
  277. (
  278. 5,
  279. 2
  280. ) NOT NULL COMMENT '准点率环比变化(%)',
  281. data_date DATE NOT NULL COMMENT '统计日期',
  282. synch_time DATETIME NOT NULL COMMENT '数据同步时间',
  283. sync_trace_id VARCHAR
  284. (
  285. 100
  286. ) NOT NULL COMMENT '同步追踪唯一ID',
  287. PRIMARY KEY
  288. (
  289. id
  290. ),
  291. UNIQUE KEY `uk_transport_date`
  292. (
  293. `data_date`
  294. )
  295. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '运输行业KPI指标表(含同步信息)';
  296. -- 同步日志表
  297. CREATE TABLE sys_data_sync_log
  298. (
  299. log_id BIGINT PRIMARY KEY AUTO_INCREMENT,
  300. job_id BIGINT NOT NULL COMMENT 'XXL-Job任务ID',
  301. trace_id VARCHAR(100) NOT NULL COMMENT '全链路追踪ID',
  302. source_system VARCHAR(100) NOT NULL COMMENT '原系统',
  303. source_table VARCHAR(255) NOT NULL COMMENT '原表',
  304. target_table VARCHAR(100) NOT NULL COMMENT '目标表',
  305. data_count INT NOT NULL COMMENT '同步数据量',
  306. status CHAR(1) NOT NULL COMMENT '状态(0成功 1失败)',
  307. error_msg TEXT COMMENT '错误信息',
  308. start_time DATETIME NOT NULL COMMENT '开始时间',
  309. end_time DATETIME COMMENT '结束时间',
  310. duration BIGINT COMMENT '耗时(ms)',
  311. create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
  312. create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
  313. ) ENGINE=InnoDB COMMENT='数据同步日志表';
  314. CREATE TABLE `park_events`
  315. (
  316. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  317. `event_title` VARCHAR(255) NOT NULL COMMENT '活动标题',
  318. `event_description` TEXT COMMENT '活动描述',
  319. `start_date` DATE NOT NULL COMMENT '活动开始日期',
  320. `end_date` DATE NOT NULL COMMENT '活动结束日期',
  321. `venue` VARCHAR(100) NOT NULL COMMENT '活动地点',
  322. `event_image_url` VARCHAR(500) COMMENT '活动图片URL',
  323. `park_code` VARCHAR(50) NOT NULL COMMENT '园区编码(如FERRARI_WORLD)',
  324. `synch_time` DATETIME NOT NULL COMMENT '数据同步时间',
  325. `sync_trace_id` VARCHAR(100) COMMENT '同步追踪ID(用于数据同步审计)',
  326. PRIMARY KEY (`id`),
  327. -- 联合唯一索引:确保同一园区、同一时间段内标题唯一
  328. UNIQUE KEY `uk_park_event_unique` (`park_code`, `event_title`, `start_date`, `end_date`),
  329. -- 普通索引(优化查询)
  330. KEY `idx_event_date` (`start_date`, `end_date`), -- 按日期范围查询
  331. KEY `sync_trace_id` (`synch_time`) -- 按同步时间查询
  332. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='园区活动信息表';
  333. -- 园区票类型
  334. CREATE TABLE `park_ticket_type`
  335. (
  336. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  337. `park_code` VARCHAR(50) NOT NULL COMMENT '园区编码(如FERRARI_WORLD)',
  338. `statistics_date` DATE NOT NULL COMMENT '统计日期',
  339. `monthly_sales_total` INT NOT NULL COMMENT '月度售票总量(图片中:17392)',
  340. `ticket_type` VARCHAR(50) NOT NULL COMMENT '游客类型(动态类型,如AP/VIP/Elite/General admission)',
  341. `ticket_rate` DECIMAL(5, 2) NOT NULL COMMENT '该类型占比(%,如8.00,支持动态类型)',
  342. `synch_time` DATETIME NOT NULL COMMENT '数据同步时间',
  343. `sync_trace_id` VARCHAR(100) COMMENT '同步追踪ID(用于数据同步审计)',
  344. PRIMARY KEY (`id`),
  345. UNIQUE KEY `uk_park_ticket_type` (`park_code`, `statistics_date`, `ticket_type`) COMMENT '同一园区同一月份同一类型数据唯一',
  346. KEY `idx_statistics_date` (`statistics_date`),
  347. KEY `idx_ticket_type` (`ticket_type`),
  348. KEY `idx_synch_time` (`synch_time`)
  349. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='园区月度售票类型统计表';
  350. CREATE TABLE `park_age_group_statistics`
  351. (
  352. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  353. `park_code` VARCHAR(50) NOT NULL COMMENT '园区编码(如FERRARI_WORLD)',
  354. `statistics_date` DATE NOT NULL COMMENT '统计日期(如2025-08-31)',
  355. `age_group` VARCHAR(20) NOT NULL COMMENT '年龄段(如0-17、18-24、25-34、36-54)',
  356. `age_ratio` DECIMAL(5, 2) NOT NULL COMMENT '该年龄段占比(%,如8.00)',
  357. `synch_time` DATETIME NOT NULL COMMENT '数据同步时间',
  358. `sync_trace_id` VARCHAR(100) COMMENT '同步追踪ID(用于数据同步审计)',
  359. PRIMARY KEY (`id`),
  360. UNIQUE KEY `uk_park_date_group` (`park_code`, `statistics_date`, `age_group`) COMMENT '同一园区同一日期同一年龄段数据唯一',
  361. KEY `idx_statistics_date` (`statistics_date`),
  362. KEY `idx_age_group` (`age_group`),
  363. KEY `idx_synch_time` (`synch_time`)
  364. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='园区游客年龄段统计表';
  365. CREATE TABLE `new_vog_measurements`
  366. (
  367. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  368. `park_code` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '园区编码(如FERRARI_WORLD)',
  369. `measurement_time` datetime NOT NULL COMMENT '测量时间(精确到小时,如2025-08-25 08:00:00)',
  370. `vog_value` int NOT NULL COMMENT 'VOG测量值(图片中的柱状图数值,如158、247)',
  371. `synch_time` datetime NOT NULL COMMENT '数据同步时间',
  372. `sync_trace_id` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '同步追踪ID(用于数据同步审计)',
  373. PRIMARY KEY (`id`),
  374. UNIQUE KEY `uk_new_vog_measurements_time` (`park_code`,`measurement_time`) COMMENT '同一园区同一时间点数据唯一',
  375. KEY `idx_measurement_time` (`measurement_time`),
  376. KEY `idx_park_code` (`park_code`),
  377. KEY `idx_synch_time` (`synch_time`)
  378. ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='VOG测量数据表(每小时统计)';
  379. CREATE TABLE IF NOT EXISTS sentiment_analysis
  380. (
  381. `id`
  382. INT
  383. (
  384. 11
  385. ) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  386. `park_code` varchar
  387. (
  388. 50
  389. ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '园区编码(如FERRARI_WORLD)',
  390. `positive_count` INT
  391. (
  392. 11
  393. ) NOT NULL DEFAULT 0 COMMENT '正面情感数量',
  394. `negative_count` INT
  395. (
  396. 11
  397. ) NOT NULL DEFAULT 0 COMMENT '负面情感数量',
  398. `neutral_count` INT
  399. (
  400. 11
  401. ) NOT NULL DEFAULT 0 COMMENT '中性情感数量',
  402. `positive_rate` DECIMAL
  403. (
  404. 5,
  405. 2
  406. ) NOT NULL COMMENT '正面情感百分比(%)',
  407. `negative_rate` DECIMAL
  408. (
  409. 5,
  410. 2
  411. ) NOT NULL COMMENT '负面情感百分比(%)',
  412. `neutral_rate` DECIMAL
  413. (
  414. 5,
  415. 2
  416. ) NOT NULL COMMENT '中性情感百分比(%)',
  417. `positive_trend` DECIMAL
  418. (
  419. 5,
  420. 2
  421. ) NULL COMMENT '正面环比变化(%)',
  422. `negative_trend` DECIMAL
  423. (
  424. 5,
  425. 2
  426. ) NULL COMMENT '负面环比变化(%)',
  427. `neutral_trend` DECIMAL
  428. (
  429. 5,
  430. 2
  431. ) NULL COMMENT '中性环比变化(%)',
  432. `tags` VARCHAR
  433. (
  434. 512
  435. ) NULL COMMENT '热门标签(逗号分隔)',
  436. `analysis_date` DATE NOT NULL COMMENT '分析日期',
  437. `synch_time` DATETIME NOT NULL COMMENT '数据同步时间',
  438. `sync_trace_id` VARCHAR
  439. (
  440. 100
  441. ) COMMENT '同步追踪ID(用于数据同步审计)',
  442. PRIMARY KEY
  443. (
  444. `id`
  445. ),
  446. UNIQUE KEY `uk_analysis_date`
  447. (
  448. `analysis_date`,
  449. `park_code`
  450. ) COMMENT '确保每天数据唯一'
  451. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户情感分析结果表';
  452. CREATE TABLE IF NOT EXISTS map_center
  453. (
  454. `id`
  455. INT
  456. (
  457. 11
  458. ) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  459. `park_code` varchar
  460. (
  461. 50
  462. ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '园区编码(如FERRARI_WORLD)',
  463. `analysis_date` DATE NOT NULL COMMENT '分析日期',
  464. `business_start_time` varchar
  465. (
  466. 50
  467. ) NULL COMMENT '营业时间-开始时间(如:10:00)',
  468. `business_end_time` varchar
  469. (
  470. 50
  471. ) NULL COMMENT '营业时间-结束时间(如:20:00)',
  472. `facility_name` VARCHAR
  473. (
  474. 100
  475. ) not NULL COMMENT '设施名称(如:Formula rossa)',
  476. `facility_status` ENUM
  477. (
  478. 'OPEN',
  479. 'CLOSED',
  480. 'MAINTENANCE',
  481. 'SCHEDULED'
  482. ) NOT NULL COMMENT '设施状态:开放/关闭/维护/计划中',
  483. `display_order` INT
  484. (
  485. 11
  486. ) NOT NULL DEFAULT 0 COMMENT '展示顺序(用于前端排序)',
  487. `synch_time` DATETIME NOT NULL COMMENT '数据同步时间',
  488. `sync_trace_id` VARCHAR
  489. (
  490. 100
  491. ) COMMENT '同步追踪ID(用于数据同步审计)',
  492. PRIMARY KEY
  493. (
  494. `id`
  495. ),
  496. UNIQUE KEY `uk_map_center_date_parkCode`
  497. (
  498. `analysis_date`,
  499. `park_code`,
  500. `facility_name`
  501. ) COMMENT '确保设施名称唯一',
  502. KEY `idx_sync_trace_id`
  503. (
  504. `sync_trace_id`
  505. ) COMMENT '追踪id'
  506. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='园区中心展示信息表(营业时间、设施状态)';
  507. CREATE TABLE `sync_rule`
  508. (
  509. `id` bigint NOT NULL AUTO_INCREMENT,
  510. `module_name` varchar(100) NOT NULL COMMENT '功能模块名称',
  511. `field_name` varchar(100) NOT NULL COMMENT '指标字段名',
  512. `rule_type` tinyint NOT NULL COMMENT '规则类型(1:空值默认值 2:阈值告警)',
  513. `default_value` varchar(255) DEFAULT NULL COMMENT '默认值',
  514. `threshold_min` decimal(24, 6) DEFAULT NULL COMMENT '阈值下限',
  515. `threshold_max` decimal(24, 6) DEFAULT NULL COMMENT '阈值上限',
  516. `alert_email` varchar(500) DEFAULT NULL COMMENT '告警邮箱(多个用逗号分隔)',
  517. `status` tinyint DEFAULT '1' COMMENT '状态(1启用 0停用)',
  518. `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  519. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  520. `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  521. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  522. `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  523. PRIMARY KEY (`id`),
  524. UNIQUE KEY `idx_module_field` (`module_name`,`field_name`,`rule_type`)
  525. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据同步规则表';
  526. CREATE TABLE `alert_record`
  527. (
  528. `id` bigint NOT NULL AUTO_INCREMENT,
  529. `module_name` varchar(100) NOT NULL COMMENT '模块名称',
  530. `field_name` varchar(100) NOT NULL COMMENT '指标字段',
  531. `current_value` decimal(24, 6) NOT NULL COMMENT '当前值',
  532. `threshold_min` decimal(24, 6) DEFAULT NULL COMMENT '阈值下限',
  533. `threshold_max` decimal(24, 6) DEFAULT NULL COMMENT '阈值上限',
  534. `alert_time` datetime NOT NULL COMMENT '报警时间',
  535. `alert_status` tinyint DEFAULT '0' COMMENT '处理状态(0未处理 1已发送 2已忽略)',
  536. `process_time` datetime DEFAULT NULL COMMENT '处理时间',
  537. `process_by` varchar(64) DEFAULT NULL COMMENT '处理人',
  538. `alert_content` text COMMENT '报警内容',
  539. `alert_emails` varchar(500) DEFAULT NULL COMMENT '通知邮箱',
  540. PRIMARY KEY (`id`),
  541. UNIQUE KEY `idx_module_field` (`module_name`,`field_name`,`alert_time`),
  542. KEY `idx_status_time` (`alert_status`,`alert_time`)
  543. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='报警记录表';
  544. CREATE TABLE `kpi_revenue`
  545. (
  546. `id` BIGINT NOT NULL AUTO_INCREMENT,
  547. `date` DATETIME NOT NULL,
  548. `revenue_generated` DECIMAL(24, 6) COMMENT 'AED',
  549. `onsite_concierge_revenue` DECIMAL(24, 6) COMMENT 'AED',
  550. `synch_time` DATETIME NOT NULL,
  551. `sync_trace_id` VARCHAR(100) NOT NULL,
  552. PRIMARY KEY (`id`),
  553. UNIQUE KEY `uk_kpi_park_date` (`date`),
  554. INDEX `idx_kpi_date` (`date`),
  555. INDEX `idx_kpi_sync` (`synch_time`, `sync_trace_id`)
  556. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  557. CREATE TABLE `kpi_daily_park_revenue`
  558. (
  559. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  560. `report_date` date NOT NULL COMMENT '报告日期',
  561. `park_code` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '园区编码',
  562. `ticket_revenue` decimal(15, 2) COMMENT '门票总收入',
  563. `retail_revenue` decimal(15, 2) COMMENT '园区内交易总收入',
  564. `synch_time` datetime NOT NULL COMMENT '同步时间',
  565. `sync_trace_id` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '同步追踪id',
  566. PRIMARY KEY (`id`),
  567. UNIQUE KEY `idx_report_date_park` (`report_date`,`park_code`) COMMENT '日期和园区唯一索引'
  568. ) ENGINE=InnoDB AUTO_INCREMENT=382 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='园区内交易总收入';