前言
本实践旨在探索 SpringBoot 与 PostGIS 在省级旅游口号管理中的应用,通过构建一个基于 SpringBoot 和 PostGIS 的省级旅游口号存储及检索系统,实现对旅游口号的高效存储、精准检索和便捷管理。在系统设计过程中,充分考虑了系统的可扩展性、数据的安全性和查询的高效性。通过 SpringBoot 的依赖注入和自动配置功能,简化了开发流程,提高了开发效率。同时,利用 PostGIS 的地理空间数据类型和查询功能,实现了对旅游口号地理位置信息的精确存储和快速检索。
一、数据库存储设计
在进行省级宣传口号的信息管理时,需要考虑时间连续性,例如不同年份使用不同的口号。本节将梳理实现过程中需要考虑的点,并给出实际的数据库表接口设计和 SQL 脚本。
1、一些需要考虑的点
在实际情况下,时间连续性是一个比较常见的需求。比如一些口号经过多次的变更,在实现上我们会分割成多个部分,比如 2023 年以前是一个口号,2024 到 2025 年又是一个口号,而 2025 年又启用了一个新的口号。在进行数据赋值时,可以假定 -1 表示没有明确的起始年份,而在未来的年份上,使用 9999 来进行设置。除此之外,还需要设置当前口号的使用状态,比如使用 0 表示无效,而 1 表示有效。同时为了方便查询,将省份 code 和省份名称都设计到数据库表中。
2、物理表设计及表结构
省级旅游口号的表结构如下:

对应的示例数据库脚本如下:
CREATE TABLE "public"."biz_tourism_slogans_info" (
"pk_id" int8 NOT NULL,
"province_code" varchar(10) COLLATE "pg_catalog"."default" NOT NULL,
"province_name" varchar(20) COLLATE "pg_catalog"."default" NOT NULL,
"start_year" int2,
"end_year" int2,
"slogan" varchar(50) COLLATE "pg_catalog"."default",
"activity_flag" int2,
"create_by" varchar(64) COLLATE "pg_catalog"."default",
"create_time" timestamp(6),
"update_by" varchar(64) COLLATE "pg_catalog"."default",
"update_time" timestamp(6),
CONSTRAINT "pk_biz_tourism_slogans_info" PRIMARY KEY ("pk_id")
);
COMMENT "biz_tourism_slogans_info"."pk_id" ;
COMMENT "biz_tourism_slogans_info"."province_code" ;
COMMENT "biz_tourism_slogans_info"."province_name" ;
COMMENT "biz_tourism_slogans_info"."start_year" ;
COMMENT "biz_tourism_slogans_info"."end_year" ;
COMMENT "biz_tourism_slogans_info"."slogan" ;
COMMENT "biz_tourism_slogans_info"."activity_flag" ;
COMMENT "biz_tourism_slogans_info"."create_by" ;
COMMENT "biz_tourism_slogans_info"."create_time" ;
COMMENT "biz_tourism_slogans_info"."update_by" ;
COMMENT "biz_tourism_slogans_info"."update_time" ;
COMMENT "biz_tourism_slogans_info" ;





