摘要:users - 用户表,存储用户基本信息如用户名、邮箱和注册时间products - 商品表,存储商品信息包括名称、价格、库存和上架时间orders - 订单表,存储订单主要信息如用户ID、下单时间、总金额和订单状态order_items - 订单明细表,存储
本文将创建查询目标数据库和数据表,初始化测试数据。也就是后面销售数据分析智能体会使用的数据源。
之前配置的datasource是NL2SQL系统的管理数据库,负责存储系统配置和元数据,而真正的查询目标数据库是通过智能体动态配置的。
创建测试数据库:ecommerce
可以在spring-ai-alibaba-example项目仓库获取测试表。
Schema:https://github.com/springaialibaba/spring-ai-alibaba-examples/blob/main/spring-ai-alibaba-nl2sql-example/chat/sql/schema.sql
这个 schema.sql 文件定义了一个完整的电商系统数据库结构,包含6个核心表,支持用户、商品、订单和分类管理。
users - 用户表,存储用户基本信息如用户名、邮箱和注册时间products - 商品表,存储商品信息包括名称、价格、库存和上架时间orders - 订单表,存储订单主要信息如用户ID、下单时间、总金额和订单状态order_items - 订单明细表,存储订单中具体商品的详情如数量和单价categories - 商品分类表,定义商品分类名称product_categories - 商品与分类关联表,实现商品和分类的多对多关在ecommerce 测试数据库中,执行上述 schema.sql 脚本。
可以在spring-ai-alibaba-example项目仓库获取测试数据。
Data:https://github.com/springaialibaba/spring-ai-alibaba-examples/blob/main/spring-ai-alibaba-nl2sql-example/chat/sql/insert.sql
这个 insert.sql 文件为电商数据库提供了完整的测试数据。
用户数据 (users) 插入了5个测试用户:alice、bob、cathy、daniel、emily,每个用户都有对应的邮箱地址。使用了 ON DUPLICATE KEY UPDATE 避免重复插入。
商品分类数据 (categories) 创建了5个主要分类:电子产品、服装、图书、家居用品、食品,覆盖了典型电商平台的主要商品类别。
商品数据 (products) 插入了10个商品,价格从15元的牛奶到4999元的笔记本电脑,库存数量也各不相同,模拟真实的商品库存情况。
商品分类关联 (product_categories) 建立了商品与分类的对应关系,其中咖啡机同时属于电子产品和家居用品两个分类,体现了多对多关系的特点。
订单数据 (orders) 创建了10个订单,分布在2025年6月的不同时间,包含三种状态:
completed(已完成)pending(待处理)cancelled(已取消)这些数据为NL2SQL系统提供了丰富的测试场景,用户可以用自然语言查询各种电商相关问题,如"查询alice的所有订单"、"统计电子产品的销量"等。
接下来可以启动 spring-ai-alibaba-nl2sql-management 管理模块。
来源:软件架构