Gitee仓库地址:travel-server:景点旅游项目服务端
文章目录 1.项目服务架构 2.数据库设计 2.1用户服务—travel_ums 2.2景点服务—travel_ams 2.2.1 ams_attraction—景点表 1.2.2 ams_resource_type—资源类型表 2.3票务服务—trabel_bms 2.3.1 bms_ticket—门票表 2.3.2 bms_ticket_type—门票类型表 2.3.3 bms_order—订单表 2.3.4 bms_payment—支付表 2.3.5 bms_comment—评分表 2.4统计服务—travel_sms 2.4.1 sms_statistics—统计表 2.4.2 sms_click—点击表 2.4.3 sms_like—点赞表 2.4.4 sms_collection—收藏表 2.4.5 sms_comment—评论表 2.4.6 sms_sensitive_word—敏感词表 2.5推荐服务 travel_rms 2.5.1 rms_user_attractioin_tag—用户标签表 2.5.2 rms_user_behavior_weight—用户行为权重表 2.5.3 rms_user_attraction_behavior—用户景点行为表 2.6活动服务 2.7搜索服务
1.项目服务架构
经过分析,该个性化景点旅游推荐系统采用微服务架构,分为8大服务:用户服务、景点服务、票务服务、统计服务、推荐服务、活动服务、搜索服务以及第三方服务(OSS阿里云服务)
用户服务
景点服务
票务服务
统计服务
排行榜(点击数/点赞数/收藏数/评论数) 敏感词过滤 推荐服务
活动服务
搜索服务:
其中,核心业务有
景点的点赞收藏(RabbitMQ、Redis) 购买门票(全局id、分布式锁) 评论内容的敏感词过滤(基于DFA 有穷自动机算法) 排行榜功能实现(Redis)
2.数据库设计
2.1用户服务—travel_ums
2.1.1 ums_user—用户表
字段名 字段类型 是否为主键 是否有唯一约束 是否有非空约束 注释 user_id int 是 是 是 用户id,自增 username varchar(20) 是 用户名,唯一 phone varchar(20) 是 是 手机号码,唯一,非空 password varchar(20) 是 密码,非空 age int 年龄 sex int 性别【0-男,1-女】 avatar_image varchar(200) 头像图片 role int 是 角色【0-普通用户,1-管理员,2-超级管理员】 add_time datetime 是 添加时间 update_time datetime 修改时间
2.2景点服务—travel_ams
2.2.1 ams_attraction—景点表
字段名 字段类型 是否为主键 是否有唯一约束 是否有非空约束 注释 attraction_id int 是 景点id,自增 attraction_name varchar(20) 景点名称 resource_type_id int 景点资源类型id quality_grade int 景点等级 province_city varchar(20) 景点所在省份城市 location varchar(50) 详细位置 open_hour varchar(50) 开放时间 phone 电话 introduction varchar(300) 景点介绍 images varchar(200) 景点图片列表 staus int 状态【1为显示,0为不显示】 add_time datetime 添加时间 update_time datetime 修改时间
1.2.2 ams_resource_type—资源类型表
字段名 字段类型 是否为主键 是否有唯一约束 是否有非空约束 注释 resource_type_id int 是 资源类型id,自增 resource_type varchar(20) 资源类型【自然类、人文类、复合类、主题公园、社会类】 introduction varchar(50) 资源类型介绍 add_time datetime 添加时间 update_time datetime 修改时间
2.3票务服务—trabel_bms
2.3.1 bms_ticket—门票表
字段名 字段类型 是否为主键 是否有唯一约束 是否为非空约束 注释 ticket_id int 是 门票id,自增 attraction_id int 景点id name varchar(20) 门票名称 type_id int 门票类型【0为成人票、1为学生票、2为儿童票 】 introduction varchar(50) 门票介绍 price double 价格 status int 上架状态【1为上架,0为下架】 num int 门票数量 add_time datetime 添加时间 update_time datetime 修改时间
2.3.2 bms_ticket_type—门票类型表
字段名 字段类型 是否为主键 是否有唯一约束 是否为非空约束 注释 ticket_type_id int 门票类型id,自增 type varchar(20) 门票类型【成人票、学生票、儿童票 、老人票、团体票】 introduction varchar(50) 门票类型介绍 add_time datetime 添加时间 update_time datetime 修改时间
2.3.3 bms_order—订单表
字段名 字段类型 是否为主键 是否有唯一约束 是否为非空约束 注释 order_id int 是 订单id,全局id user_id int 用户id attraction_id int 景点id ticket_id int 门票id num int 购买数量 price double 订单价格 status int 订单状态【0为待支付,1为已支付,2为已使用,3为已取消】 add_time datetime 添加时间 update_time datetime 修改时间
2.3.4 bms_payment—支付表
字段名 字段类型 是否为主键 是否有唯一约束 是否为非空约束 注释 payment_id int 是 支付记录id,全局id price double 支付金额 status int 支付状态【1为成功,0为失败】 add_time datetime 添加时间 update_time datetime 修改时间
2.3.5 bms_comment—评分表
字段名 字段类型 是否为主键 是否有唯一约束 是否为非空约束 注释 comment_id int 是 评论id order_id int 订单记录id user_id int 用户id attraction_id int 景点id score int 评分(0-10) content varchar(50) 评分内容 images varchar(200) 评分图片 add_time datetime 添加时间 update_time datetime 修改时间
2.4统计服务—travel_sms
2.4.1 sms_statistics—统计表
字段名 字段类型 是否为主键 是否有唯一约束 是否有非空约束 注释 statistics_id int 是 统计id,自增 attraction_id int 景点id clicks int 点击数 likes int 点赞数 collections int 收藏数 comments int 评论数 add_time datetime 添加时间 update_time datetime 修改时间
2.4.2 sms_click—点击表
字段名 字段类型 是否为主键 是否有唯一约束 是否有非空约束 注释 click_id int 是 点击id,自增 user_id varchar(20) 用户id attraction_id int 景点id clicks int 点击数 add_time datetime 添加时间 update_time datetime 修改时间
2.4.3 sms_like—点赞表
字段名 字段类型 是否为主键 是否有唯一约束 是否有非空约束 注释 click_id int 是 点赞id,自增 user_id varchar(20) 用户id attraction_id varchar(200) 景点id列表 add_time datetime 添加时间 update_time datetime 修改时间
2.4.4 sms_collection—收藏表
字段名 字段类型 是否为主键 是否有唯一约束 是否有非空约束 注释 collection_id int 是 收藏id,自增 user_id varchar(20) 景点名称 attraction_id varchar(200) 景点id列表 add_time datetime 添加时间 update_time datetime 修改时间
2.4.5 sms_comment—评论表
字段名 字段类型 是否为主键 是否有唯一约束 是否有非空约束 注释 comment_id int 是 评论id,自增 user_id int 用户id attraction_id int 景点id comment varchar(50) 评论内容 add_time datetime 添加时间 update_time datetime 修改时间
2.4.6 sms_sensitive_word—敏感词表
字段名 字段类型 是否为主键 是否有唯一约束 是否有非空约束 注释 sensitive_word_id int 是 敏感词id sensitive_word varchar(200) 敏感词 add_time datetime 添加时间 update_time datetime 修改时间
2.5推荐服务 travel_rms
2.5.1 rms_user_attractioin_tag—用户标签表
字段名 字段类型 是否为主键 是否有唯一约束 是否有非空约束 注释 id int 是 用户标签id,自增 user_id int 用户id tag varchar(50) 标签【用户喜欢的资源类型id、主导功能id、质量等级id】 add_time datetime 添加时间 update_time datetime 修改时间
2.5.2 rms_user_behavior_weight—用户行为权重表
字段名 字段类型 是否为主键 是否有唯一约束 是否有非空约束 注释 id int 是 用户行为权重id,自增 click_weight double 点击权重 like_weight double 点赞权重 collection_weight double 收藏权重 comment_weight double 评论权重 now_config int 当前配置【1为当前配置,0为不是当前配置】 add_time datetime 添加时间 update_time datetime 修改时间
2.5.3 rms_user_attraction_behavior—用户景点行为表
字段名 字段类型 是否为主键 是否有唯一约束 是否有非空约束 注释 id int 是 用户景点行为id,自增 user_id double 用户id attraction_id double 景点id attraction_name double 景点名称 weight double 用户对该景点的权重 add_time datetime 添加时间 update_time datetime 修改时间
2.6活动服务
2.7搜索服务