【旅游景点项目日记 | 第一篇】项目服务架构、数据库表设计

在这里插入图片描述

Gitee仓库地址:travel-server:景点旅游项目服务端

文章目录

  • 1.项目服务架构
  • 2.数据库设计
    • 2.1用户服务—travel_ums
      • 2.1.1 ums_user—用户表
    • 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阿里云服务)

  1. 用户服务

    • 用户登录、注册

    • 用户每日签到

  2. 景点服务

    • 景点管理
    • 景点点赞、收藏、评论
  3. 票务服务

    • 订门票
    • 支付
    • 评分
  4. 统计服务

    • 排行榜(点击数/点赞数/收藏数/评论数)
    • 敏感词过滤
  5. 推荐服务

  6. 活动服务

    • 特色活动
  7. 搜索服务:

    • 景点的搜索和筛选功能,支持多维度的条件查询

其中,核心业务有

  • 景点的点赞收藏(RabbitMQ、Redis)
  • 购买门票(全局id、分布式锁)
  • 评论内容的敏感词过滤(基于DFA 有穷自动机算法)
  • 排行榜功能实现(Redis)

2.数据库设计

2.1用户服务—travel_ums

2.1.1 ums_user—用户表

字段名字段类型是否为主键是否有唯一约束是否有非空约束注释
user_idint用户id,自增
usernamevarchar(20)用户名,唯一
phonevarchar(20)手机号码,唯一,非空
passwordvarchar(20)密码,非空
ageint年龄
sexint性别【0-男,1-女】
avatar_imagevarchar(200)头像图片
roleint角色【0-普通用户,1-管理员,2-超级管理员】
add_timedatetime添加时间
update_timedatetime修改时间

2.2景点服务—travel_ams

2.2.1 ams_attraction—景点表

字段名字段类型是否为主键是否有唯一约束是否有非空约束注释
attraction_idint景点id,自增
attraction_namevarchar(20)景点名称
resource_type_idint景点资源类型id
quality_gradeint景点等级
province_cityvarchar(20)景点所在省份城市
locationvarchar(50)详细位置
open_hourvarchar(50)开放时间
phone电话
introductionvarchar(300)景点介绍
imagesvarchar(200)景点图片列表
stausint状态【1为显示,0为不显示】
add_timedatetime添加时间
update_timedatetime修改时间

1.2.2 ams_resource_type—资源类型表

字段名字段类型是否为主键是否有唯一约束是否有非空约束注释
resource_type_idint资源类型id,自增
resource_typevarchar(20)资源类型【自然类、人文类、复合类、主题公园、社会类】
introductionvarchar(50)资源类型介绍
add_timedatetime添加时间
update_timedatetime修改时间

2.3票务服务—trabel_bms

2.3.1 bms_ticket—门票表

字段名字段类型是否为主键是否有唯一约束是否为非空约束注释
ticket_idint门票id,自增
attraction_idint景点id
namevarchar(20)门票名称
type_idint门票类型【0为成人票、1为学生票、2为儿童票 】
introductionvarchar(50)门票介绍
pricedouble价格
statusint上架状态【1为上架,0为下架】
numint门票数量
add_timedatetime添加时间
update_timedatetime修改时间

2.3.2 bms_ticket_type—门票类型表

字段名字段类型是否为主键是否有唯一约束是否为非空约束注释
ticket_type_idint门票类型id,自增
typevarchar(20)门票类型【成人票、学生票、儿童票 、老人票、团体票】
introductionvarchar(50)门票类型介绍
add_timedatetime添加时间
update_timedatetime修改时间

2.3.3 bms_order—订单表

字段名字段类型是否为主键是否有唯一约束是否为非空约束注释
order_idint订单id,全局id
user_idint用户id
attraction_idint景点id
ticket_idint门票id
numint购买数量
pricedouble订单价格
statusint订单状态【0为待支付,1为已支付,2为已使用,3为已取消】
add_timedatetime添加时间
update_timedatetime修改时间

2.3.4 bms_payment—支付表

字段名字段类型是否为主键是否有唯一约束是否为非空约束注释
payment_idint支付记录id,全局id
pricedouble支付金额
statusint支付状态【1为成功,0为失败】
add_timedatetime添加时间
update_timedatetime修改时间

2.3.5 bms_comment—评分表

字段名字段类型是否为主键是否有唯一约束是否为非空约束注释
comment_idint评论id
order_idint订单记录id
user_idint用户id
attraction_idint景点id
scoreint评分(0-10)
contentvarchar(50)评分内容
imagesvarchar(200)评分图片
add_timedatetime添加时间
update_timedatetime修改时间

2.4统计服务—travel_sms

2.4.1 sms_statistics—统计表

字段名字段类型是否为主键是否有唯一约束是否有非空约束注释
statistics_idint统计id,自增
attraction_idint景点id
clicksint点击数
likesint点赞数
collectionsint收藏数
commentsint评论数
add_timedatetime添加时间
update_timedatetime修改时间

2.4.2 sms_click—点击表

字段名字段类型是否为主键是否有唯一约束是否有非空约束注释
click_idint点击id,自增
user_idvarchar(20)用户id
attraction_idint景点id
clicksint点击数
add_timedatetime添加时间
update_timedatetime修改时间

2.4.3 sms_like—点赞表

字段名字段类型是否为主键是否有唯一约束是否有非空约束注释
click_idint点赞id,自增
user_idvarchar(20)用户id
attraction_idvarchar(200)景点id列表
add_timedatetime添加时间
update_timedatetime修改时间

2.4.4 sms_collection—收藏表

字段名字段类型是否为主键是否有唯一约束是否有非空约束注释
collection_idint收藏id,自增
user_idvarchar(20)景点名称
attraction_idvarchar(200)景点id列表
add_timedatetime添加时间
update_timedatetime修改时间

2.4.5 sms_comment—评论表

字段名字段类型是否为主键是否有唯一约束是否有非空约束注释
comment_idint评论id,自增
user_idint用户id
attraction_idint景点id
commentvarchar(50)评论内容
add_timedatetime添加时间
update_timedatetime修改时间

2.4.6 sms_sensitive_word—敏感词表

字段名字段类型是否为主键是否有唯一约束是否有非空约束注释
sensitive_word_idint敏感词id
sensitive_wordvarchar(200)敏感词
add_timedatetime添加时间
update_timedatetime修改时间

2.5推荐服务 travel_rms

2.5.1 rms_user_attractioin_tag—用户标签表

字段名字段类型是否为主键是否有唯一约束是否有非空约束注释
idint用户标签id,自增
user_idint用户id
tagvarchar(50)标签【用户喜欢的资源类型id、主导功能id、质量等级id】
add_timedatetime添加时间
update_timedatetime修改时间

2.5.2 rms_user_behavior_weight—用户行为权重表

字段名字段类型是否为主键是否有唯一约束是否有非空约束注释
idint用户行为权重id,自增
click_weightdouble点击权重
like_weightdouble点赞权重
collection_weightdouble收藏权重
comment_weightdouble评论权重
now_configint当前配置【1为当前配置,0为不是当前配置】
add_timedatetime添加时间
update_timedatetime修改时间

2.5.3 rms_user_attraction_behavior—用户景点行为表

字段名字段类型是否为主键是否有唯一约束是否有非空约束注释
idint用户景点行为id,自增
user_iddouble用户id
attraction_iddouble景点id
attraction_namedouble景点名称
weightdouble用户对该景点的权重
add_timedatetime添加时间
update_timedatetime修改时间

2.6活动服务

2.7搜索服务

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/573083.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最优算法100例之09-数组中单独出现两次的数字

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 题解报告 最优解…

如何使用 ArcGIS Pro 自动矢量化水系

对于某些要素颜色统一的地图,比如电子地图,可以通过图像识别技术将其自动矢量化,这里为大家介绍一下 ArcGIS Pro 自动矢量化水系的方法,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的电子地图数据&#…

微软正在改进其AI驱动的Copilot在Microsoft Teams中的工作方式,为会议聊天、总结等引入了新的召唤助手方式

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Sublime 彻底解决中文乱码

1. 按ctrl,打开Console,输入如下代码: import urllib.request,os; pf Package Control.sublime-package; ipp sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHand…

水电站泄洪预警广播系统方案

一、行业背景 近年来由于危险河道管理措施不到位,调峰电站泄水风险长期存在,信息通报制度缺失以及民众安全警觉性不高等因素导致的水电站在泄洪时冲走下游河道游客以及人民财产的事故频发。 我司通过物联网、云计算、大数据、人工智能等技术手段&#x…

《安富莱嵌入式周报》第335期:大量嵌入式书籍免费下载,CNC电机同步,智能家居比赛作品,EMF2024电子胸牌,Swift语言单片机编程,UDS Boot

周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV151421Q7P4/ 《安富莱嵌入式周报》第335期:大量嵌入…

Spring 事件广播机制详解

前言 写这篇文章的初衷源自对 Spring 框架中事件机制的好奇心。在编写观察者模式代码示例时,我突然想起了 Spring 框架中支持多事件监听的特性,例如ContextClosedEvent、ContextRefreshedEvent、ContextStartedEvent等等。传统的观察者模式通常是基于单…

JDK8的下载安装与环境变量配置教程

前言 官网下载:Java Archive Downloads - Java SE 8u211 and later 现在应该没人用32位的系统了吧,直接下载Windows x64 Installer jdk-8u391-windows-x64.exe 一、安装JDK 1. 打开jdk-8u391-windows-x64.exe 2. 直接下一步 3. 这个地方不要动他&…

剑指Offer题目笔记19(二分查找)

面试题68: 问题: ​ 输入一个排序的整形数组nums和一个目标值t,如果数组nums中包含t,则返回在数组中的下标,否则返回按照顺序插入到数组的下标。 解决方案: ​ 使用二分查找。每次二分查找都选取位于数组…

Docker数据卷挂载

一、容器与数据耦合的问题: 数据卷是虚拟的,不真实存在的,它指向文件中的文件夹 ,属主机文件系统通过数据卷和容器数据进行联系,你改变我也改变。 解决办法: 对宿主机文件系统内的文件进行修改,会立刻反应…

用搜索引擎收集信息-常用方式

1,site csdn.net (下图表示只在csdn网站里搜索java) 2,filetype:pdf (表示只检索某pdf文件类型) 表示在浏览器里面查找有关java的pdf文件 3,intitle:花花 (表示搜索网页标题里面有花…

VTK 示例 基本的流程-事件交互、球体、

流程可以总结如下: 导入所需的头文件: 首先,导入了一系列 VTK 头文件,这些文件包含了所需的类和函数声明。 创建对象: 创建了两个球体(一个较大,一个较小),一个平面&…