摘 要
随着移动互联网的迅速发展和智能手机的普及,移动应用已经成为人们日常生活中不可或缺的一部分。特别是在旅游领域,移动应用为用户提供了便捷、高效的服务体验。微信小程序作为一种轻量级的应用程序,凭借其无需下载安装、即用即走的特点,迅速获得了广大用户的青睐。同时,Node.js作为一种高效、灵活的服务器端JavaScript运行环境,为开发者提供了丰富的工具和库,使得开发过程更加高效和便捷。
““云游贵州”旅游系统旨在为广大游客提供一个全面、便捷的旅游服务平台,让游客能够随时随地了解贵州的旅游资源、景点介绍、旅游攻略等信息。通过微信小程序,游客可以方便地浏览景点、预订门票、查看旅游攻略等,同时还可以通过系统提供的交互功能与其他游客分享旅游经验。
本文将详细介绍基于Node.js和微信小程序的““云游贵州”旅游系统的设计与实现过程。首先,我们将对系统进行需求分析,明确系统的功能和特点。然后,我们将介绍系统的总体架构设计,包括前后端分离的设计思想、数据库的选择和设计等。接着,我们将详细阐述系统的各个功能模块的实现过程,包括景点类型管理、门票类型管理、景区信息管理、景区预定管理、酒店信息管理、酒店订单管理、热门攻略管理、美食专区管理等功能。最后,我们将对系统进行测试和优化,确保系统的稳定性和性能。
通过本文的介绍,读者可以了解到基于Node.js和微信小程序的旅游系统的开发流程和关键技术,为类似系统的开发提供参考和借鉴。同时,也希望通过““云游贵州”旅游系统的实现,为广大游客提供更加便捷、高效的旅游服务体验。
关键词:旅游系统;Node.js ;微信小程序
Design and Implementation of "Cloud Tour Guizhou" Tourism System Based on WeChat Mini Program
Abstract
With the rapid development of mobile Internet and the popularization of smart phones, mobile applications have become an indispensable part of people's daily life. Especially in the tourism field, mobile applications provide users with a convenient and efficient service experience. As a lightweight application, WeChat mini programs have quickly gained the favor of a large number of users due to their characteristics of no need to download and install, and being ready to use and go. Meanwhile, Node.js, as an efficient and flexible server-side JavaScript runtime environment, provides developers with rich tools and libraries, making the development process more efficient and convenient.
The "Cloud Tour Guizhou" tourism system aims to provide a comprehensive and convenient tourism service platform for tourists, allowing them to learn about Guizhou's tourism resources, scenic spot introductions, tourism strategies, and other information anytime and anywhere. Through the WeChat mini program, tourists can conveniently browse attractions, book tickets, view travel guides, and share their travel experiences with other tourists through the interactive functions provided by the system.
This article will provide a detailed introduction to the design and implementation process of the "Cloud Tour Guizhou" tourism system based on Node.js and WeChat mini program. Firstly, we will conduct a requirements analysis of the system to clarify its functions and characteristics. Then, we will introduce the overall architecture design of the system, including the design concept of front-end and back-end separation, database selection and design, etc. Next, we will elaborate on the implementation process of various functional modules of the system, including scenic spot type management, ticket type management, scenic spot information management, scenic spot reservation management, hotel information management, hotel order management, popular strategy management, and food zone management. Finally, we will test and optimize the system to ensure its stability and performance.
Through the introduction of this article, readers can learn about the development process and key technologies of a tourism system based on Node.js and WeChat mini programs, providing reference and inspiration for the development of similar systems. At the same time, we also hope to provide more convenient and efficient tourism service experiences for tourists through the implementation of the "Cloud Tour Guizhou" tourism system.
Key words: Tourism system; Node.js; WeChat Mini Program
1.1选题背景和意义
随着科技的飞速发展和人们生活水平的提高,旅游业成为了全球范围内的重要产业。中国作为一个拥有丰富自然和文化资源的国家,旅游业的发展尤为迅猛。然而,传统的旅游方式已经无法满足现代游客对于个性化和便捷性的需求。因此,结合移动互联网技术和微信小程序的普及,开发一款能够提供全面、便捷旅游服务的系统显得尤为重要。
“云游贵州”旅游系统正是基于这样的背景而诞生的。贵州作为中国西南地区的一个多民族、多文化的省份,拥有丰富的旅游资源,包括壮丽的自然风光、独特的民俗文化等。然而,由于地理位置和信息传播的限制,许多游客对于贵州的了解并不深入。因此,通过微信小程序这一平台,将贵州的旅游资源进行数字化、网络化展示,可以为游客提供更加便捷、个性化的旅游服务体验。
该系统的设计与实现不仅有助于提升贵州旅游业的信息化水平,还能为游客提供更加全面、准确的旅游信息,帮助游客更好地规划行程、了解景点、预订门票等。同时,通过微信小程序这一社交平台,游客还可以与其他游客进行互动,分享旅游经验,形成一个互助互利的旅游社区。
此外,该系统的实现还具有一定的社会意义。一方面,它可以促进贵州旅游业的可持续发展,提高当地的经济效益和社会影响力;另一方面,通过数字化和网络化的手段,可以更好地保护和传承贵州的丰富文化资源,让更多的人了解和欣赏贵州的独特魅力。
综上所述,“云游贵州”旅游系统的设计与实现具有重要的选题背景和意义,它不仅符合当前旅游业的发展趋势和游客的需求,还能为贵州旅游业的发展带来积极的影响,推动旅游业与信息技术的深度融合。
1.2国内外研究现状
在中国,随着移动互联网的普及和微信小程序的发展,越来越多的旅游系统开始采用微信小程序作为服务用户的平台。这些系统不仅提供了景点介绍、门票预订等基本功能,还融合了人工智能、大数据分析等先进技术,为用户提供更加智能、个性化的服务。例如,通过利用大数据分析用户行为,系统可以为用户推荐更符合其兴趣的景点和旅游攻略。此外,国内的研究还关注于如何通过微信小程序提升用户体验,如优化界面设计、提高系统响应速度等。
国外研究现状
在国际上,许多国家和地区也在积极探索基于移动应用的旅游服务系统。这些系统通常结合当地的旅游资源和文化特色,为用户提供丰富的旅游体验。例如,一些系统利用增强现实(AR)技术,让用户可以在手机上看到景点的三维模型或虚拟导览;还有一些系统通过社交媒体集成,让用户可以方便地与其他游客互动。此外,国外的研究还关注于如何通过移动应用提高旅游业的可持续发展,如促进当地经济的增长、保护生态环境等。
国内外研究现状对比
从国内外的研究现状来看,基于微信小程序的“云游贵州”旅游系统在设计和实现时可以借鉴国内外已有的成功经验和先进技术。例如,可以利用大数据分析用户行为来优化内容推荐;可以利用AR技术提升用户的旅游体验;还可以通过社交媒体集成促进用户之间的互动。同时,也需要结合贵州的实际情况和特色,打造具有地方特色的旅游服务系统,以满足当地游客和外地游客的需求。
综上所述,基于微信小程序的“云游贵州”旅游系统的设计与实现在国内外都有广泛的研究基础和成功案例可供借鉴。通过深入了解并结合国内外的研究现状,可以确保系统的设计和实现既具有创新性又符合用户需求。
1.3论文结构与章节安排
本文共分为六章,章节内容安排如下:
第一章为引言,此章节对所设计和实现的系统的背景和意义和开发现状进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。
第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的前端客户功能和后端管理员功能进行了分析和说明。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
第六章:总结
第二章 系统分析
2.1可行性分析
2.1.1技术可行性
通过采用Node.js技术,开发出一款功能强大、操作简便的“云游贵州”旅游系统,同时还建立了一个完善、安全、可靠的后台数据库,以确保其运行的稳定性和可靠性。
通过采用Node.js技术和Mysql数据库,可以轻松实现“云游贵州”旅游系统的设计,并且将用户角色有机地融入其中,这种创新的方式值得一试。此外,数据的完整性和多样性也为数据的有效分配和管理提供了坚实的基础。数据库安全平台是一个至关重要的组成部分,它不仅可以提升数据安全性,还可以通过提供更加灵活、智能、有效的基础控制方法,来实现对安全计算环境的支撑,从而确保数据的安全性。由于“云游贵州”旅游系统拥有强大的功能、免费的特性以及出色的用户体验,因此它在技术上是一个可行的选择。
2.1.2经济可行性
“云游贵州”旅游系统的开发是由开发者自己开发,不需要购买其他软件或者端口之类的,而且在“云游贵州”旅游系统的开发之前所做的市场调研及其他的微信小程序的“云游贵州”旅游系统,都是没有任何费用的,通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于“云游贵州”旅游系统的开发在经济上是完全可行的,没有任何费用支出的。
使用node.js技术是比较成熟的技术,所以“云游贵州”旅游系统的开发在经济上是没有问题的。
2.1.3操作可行性
“云游贵州”旅游系统设计完成后,其可操作性得到了显著提升,管理员可以轻松访问系统,快速管理各种数据信息,而用户也可以轻松访问系统界面,通过界面导航菜单,快速查看各个功能模块,满足用户的信息需求。此外,系统的操作也不再需要专业人员,只需要普通用户就可以轻松完成各个功能模块的操作管理。因此,我们的系统具有很高的可操作性。通过使用界面窗口,我们能够轻松地让用户进行登录。因此,只需要掌握基础的电脑操作技能,就能够满足您的需求。
2.2系统功能分析
2.2.1 功能性分析
按照“云游贵州”旅游系统的角色,划分了普通用户管理模块、管理员模块这两大部分。
(一)普通用户管理模块:
首页:提供用户浏览旅游系统的入口,展示热门景区、特色美食、旅游资讯等内容,方便用户快速了解最新的旅游信息。
购物车:允许用户将感兴趣的景点门票、特产商品等添加至购物车中,方便统一管理和结算。
游黔社区:提供用户交流互动的平台,包括发布游记、分享旅行经验、交流旅游攻略等功能,增强用户之间的互动和交流。
游黔资讯:展示各类旅游资讯,包括景点介绍、活动推荐、路线规划等,为用户提供全面的旅游信息参考。
景区信息:提供各个景区的详细信息,包括景点介绍、门票价格、开放时间、交通指南等,帮助用户选择合适的旅游目的地。
酒店信息:展示各类酒店的信息,包括酒店位置、房型价格、设施服务等,方便用户预订入住。
热门攻略:推荐各种热门旅游攻略和线路规划,帮助用户更好地规划旅行行程。
美食专区:介绍当地特色美食和餐厅推荐,让用户在旅途中享受美食文化。
特产文创:展示当地的特色特产及相关文创产品,方便用户购买纪念品或礼物。
网站公告:发布系统的最新公告和通知,让用户及时了解系统更新和活动信息。
我的:提供用户个人中心,包括基本信息管理、收货地址管理、订单管理、景区预定、酒店订单、留言板管理、论坛管理、订单配送、收藏等功能,方便用户查看和管理个人信息和订单记录。
(二 )管理员管理模块:
登录:管理员需要通过安全的登录界面输入用户名和密码,以确保系统的安全性和身份验证。
后台首页:管理员登录后,可以进入系统的后台首页,获取系统的运行情况、重要通知、数据统计等重要信息,以便进行监控和管理。
系统用户管理:管理员可以管理系统的用户,包括普通用户、管理员用户等,进行用户信息的查看、编辑和删除。
景点类型管理:管理员可以管理景点的类型,包括添加、编辑、删除不同类型的景点,以便用户更方便地查找和浏览。
门票类型管理:管理员可以管理景点的门票类型,包括票价、折扣、有效期等信息的管理。
景区信息管理:管理员可以管理各个景区的详细信息,包括景点介绍、门票价格、开放时间、交通指南等。
景区预定管理:管理员可以管理用户对景区的预定信息,包括预定时间、预定门票类型、订单状态等。
酒店信息管理:管理员可以管理各类酒店的信息,包括酒店位置、房型价格、设施服务等。
酒店订单管理:管理员可以管理用户对酒店的预订订单信息,包括预订时间、入住时间、订单状态等。
热门攻略管理:管理员可以管理系统发布的热门旅游攻略和线路规划,包括发布、编辑、删除等操作。
美食专区管理:管理员可以管理美食专区的内容,包括添加、编辑、删除美食推荐和餐厅信息。
系统管理:管理员可以管理系统的轮播图信息,包括添加、编辑、删除系统首页的轮播图内容。
留言管理:管理员可以管理用户在系统中留言的内容,包括查看、回复、删除等操作。
网站公告管理:管理员可以管理系统发布的公告信息,包括发布、编辑、删除网站公告内容。
资源管理:管理员可以管理系统中的游黔资讯和新闻列表等资源内容,包括发布、编辑、删除等操作。
交流管理:管理员可以管理系统中用户之间的交流互动,包括管理论坛板块、话题、评论等。
商城管理:管理员可以管理系统中的特产文创商城,包括分类列表、订单列表、订单配送等内容的管理。
2.2.2 非功能性分析
“云游贵州”旅游系统的非功能性需求比如“云游贵州”旅游系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1“云游贵州”旅游系统非功能需求表
安全性 | 主要指“云游贵州”旅游系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指“云游贵州”旅游系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响“云游贵州”旅游系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着“云游贵州”旅游系统的页面展示内容进行操作,就可以了。 |
可维护性 | “云游贵州”旅游系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3系统用例分析
通过2.2功能的分析,得出了“云游贵州”旅游系统的用例图:
普通用户角色用例如图2-1所示。

图2-1“云游贵州”旅游系统普通用户角色用例图
后端管理上的管理员是维护整个“云游贵州”旅游系统中所有数据信息的。管理员角色用例如图2-2所示。

2.4系统操作流程
2.4.1用户登录流程
对于系统的安全性的第一关,就是用户想要进入系统,必须通过登录窗口,输入自己的登录信息才可以进行登录,用户输入的信息准确无误后才可以进入到操作系统界面,进行功能模块的相对应操作,如果用户输入的信息不正确,则窗口出现提示框,用户登录失败,返回到第一步进行重新输入,如图2-3所示。

图2-3登录操作流程图
2.4.2信息添加流程
对于“云游贵州”旅游系统,需要随时添加所需要的数据信息,对于用户添加信息,需要根据添加界面,根据选框的内容进行填写所要添加的数据信息,信息输入完成后判断数据信息是否符合要求,符合要求则添加完成,用户所添加的信息不符合要求,则需要返回到第一步,重新输入数据信息,再进行判断操作,如图2-4所示。

图2-4信息添加流程图
2.4.3信息删除流程
不管是哪个用户角色进入到不通的系统操作界面,都可以进行不同的信息内容的操作功能,对用系统数据信息的删除,用户一旦将信息删除,那么该删除的数据信息将无法恢复,所以用户在对数据删除事,一定判断删除的内容是否是确定要删除的,确定无误后选择确定删除操作,如图2-5所示。

图2-5信息删除流程图
第三章 系统总体设计
3.1系统架构设计
本“云游贵州”旅游系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。

图3-1 “云游贵州”旅游系统架构设计图
表现层(UI):又称UI层,主要完成本“云游贵州”旅游系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本“云游贵州”旅游系统时的舒适度。UI的界面设计也要适应不同版本的“云游贵州”旅游系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本“云游贵州”旅游系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本“云游贵州”旅游系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本“云游贵州”旅游系统的数据存储和管理功能。
3.2开发流程设计
“云游贵州”旅游系统的开发对管理模块和系统使用的数据库进行分析,编写代开发,规划和操作是构建信息管理应用程序的必要三步曲,它决定了系统是否能够真正实现预设功能以及是否可以在成功设计后实施。在开发过程中,每个阶段必须严格按照线性顺序进行开发,并且在相应阶段生成的每个工作都可以通过技术进行验证和检查。确保一个阶段完成后是正确的,不会造成下一阶段拖拽现象,使系统完成设计功能后得到保证。
从“云游贵州”旅游系统的成功开发经验来看,上述方法效果最为明显,最大程度地降低了系统开发的复杂性。如图3-2所示。

图3-2开发系统流程图
3.3数据库设计
数据库是信息系统的基础和核心。数据库设计的好坏直接影响到信息系统开发的成败。创建数据库表首先确定实体的属性和实体之间的关系。根据关系创建一个数据表。
3.3.1实体ER图
数据库是整个软件编程中最重要的一个步骤,对于数据库问题主要是判定数据库的数量和结构公式的创建。展示系统使用的是Mysql进行对数据库进行管理,进行保证数据的安全性、稳定性等。
概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库,下图主要是数据库实体的E-R图如图3-3所示:

图3-3实体的E-R图
这些功能可以充分满足“云游贵州”旅游系统的需求。此系统功能较为全面,系统功能结构图如3-4所示。

图3-4系统功能结构图
3.3.2数据表
我们可以根据数据结构的详细分析要求,我们根据输入和输出数据量的要求进行分析,确定什么表表,结构之间的关系,我们可以验证,调整和完善,查询和浏览过程,可以实现数据库,以使用户对数据和功能有更多要求。
基于系统使用的数据库管理系统的特点,对数据库的概念模型进行了转换和构建。但是,这个系统只需要充分考虑“云游贵州”旅游系统的功能,而且组织比较清晰。数据表如下。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | address_id | int | 10 | 0 | N | Y | 收货地址: | |
2 | name | varchar | 32 | 0 | Y | N | 姓名: | |
3 | phone | varchar | 13 | 0 | Y | N | 手机: | |
4 | postcode | varchar | 8 | 0 | Y | N | 邮编: | |
5 | address | varchar | 255 | 0 | N | N | 地址: | |
6 | user_id | mediumint | 8 | 0 | N | N | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | default | bit | 1 | 0 | N | N | 0 | 默认判断 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | cart_id | int | 10 | 0 | N | Y | 购物车ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | img | varchar | 255 | 0 | N | N | 0 | 图片: |
4 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | state | int | 10 | 0 | N | N | 0 | 状态:使用中,已失效 |
8 | price | double | 9 | 2 | N | N | 0.00 | 单价: |
9 | price_ago | double | 9 | 2 | N | N | 0.00 | 原价: |
10 | price_count | double | 11 | 2 | N | N | 0.00 | 总价: |
11 | num | int | 10 | 0 | N | N | 1 | 数量: |
12 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
13 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
14 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | city_type_id | int | 10 | 0 | N | Y | 城市类型ID | |
2 | ticket_classification | varchar | 64 | 0 | Y | N | 城市分类 | |
3 | admission_price | int | 10 | 0 | Y | N | 0 | 门票价格 |
4 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | food_zone_id | int | 10 | 0 | N | Y | 美食专区ID | |
2 | dish_name | varchar | 64 | 0 | Y | N | 菜品名称 | |
3 | categorization_of_dishes | varchar | 64 | 0 | Y | N | 菜品分类 | |
4 | price_of_dishes | varchar | 64 | 0 | Y | N | 菜品价格 | |
5 | recommendation_index | varchar | 64 | 0 | Y | N | 推荐指数 | |
6 | dish_pictures | varchar | 255 | 0 | Y | N | 菜品图片 | |
7 | store_location | varchar | 64 | 0 | Y | N | 店铺位置 | |
8 | dishes_and_ingredients | text | 65535 | 0 | Y | N | 菜品食材 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | goods_id | mediumint | 8 | 0 | N | Y | 产品id:[0,8388607] | |
2 | title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品和html的<title>标签中 | |
3 | img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
5 | price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
6 | price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
7 | sales | int | 10 | 0 | N | N | 0 | 销量:[0,1000000000] |
8 | inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
9 | type | varchar | 64 | 0 | N | N | 商品分类: | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击量:[0,1000000000]访问这篇产品的人次 |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
12 | img_1 | text | 65535 | 0 | Y | N | 主图1: | |
13 | img_2 | text | 65535 | 0 | Y | N | 主图2: | |
14 | img_3 | text | 65535 | 0 | Y | N | 主图3: | |
15 | img_4 | text | 65535 | 0 | Y | N | 主图4: | |
16 | img_5 | text | 65535 | 0 | Y | N | 主图5: | |
17 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
19 | customize_field | text | 65535 | 0 | Y | N | 自定义字段 | |
20 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
21 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
22 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
23 | user_id | int | 10 | 0 | Y | N | 0 | 添加人 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | int | 10 | 0 | N | Y | 商品分类ID: | |
2 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
3 | name | varchar | 255 | 0 | Y | N | 商品名称: | |
4 | desc | varchar | 255 | 0 | Y | N | 描述: | |
5 | icon | varchar | 255 | 0 | Y | N | 图标: | |
6 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
7 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hotel_information_id | int | 10 | 0 | N | Y | 酒店信息ID | |
2 | hotel_name | varchar | 64 | 0 | Y | N | 酒店名称 | |
3 | star_rating | varchar | 64 | 0 | Y | N | 星级评分 | |
4 | hotel_prices | int | 10 | 0 | Y | N | 0 | 酒店价格 |
5 | hotel_pictures | varchar | 255 | 0 | Y | N | 酒店图片 | |
6 | release_time | datetime | 19 | 0 | Y | N | 发布时间 | |
7 | positive_information | text | 65535 | 0 | Y | N | 利好信息 | |
8 | hotel_overview | text | 65535 | 0 | Y | N | 酒店简述 | |
9 | hotel_location | longtext | 2147483647 | 0 | Y | N | 酒店位置 | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
11 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hotel_orders_id | int | 10 | 0 | N | Y | 酒店订单ID | |
2 | hotel_name | varchar | 64 | 0 | Y | N | 酒店名称 | |
3 | star_rating | varchar | 64 | 0 | Y | N | 星级评分 | |
4 | hotel_prices | varchar | 64 | 0 | Y | N | 酒店价格 | |
5 | hotel_location | varchar | 64 | 0 | Y | N | 酒店位置 | |
6 | booking_an_account | int | 10 | 0 | Y | N | 0 | 预定账户 |
7 | booking_time | datetime | 19 | 0 | Y | N | 预定时间 | |
8 | contact_phone_number | varchar | 16 | 0 | Y | N | 联系电话 | |
9 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
10 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
11 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
12 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | logistics_delivery_id | int | 10 | 0 | N | Y | 物流配送ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单号 | |
3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
4 | purchase_quantity | varchar | 64 | 0 | Y | N | 购买数量 | |
5 | total_transaction_amount | double | 11 | 2 | Y | N | 0.00 | 交易总额 |
6 | the_date_of_issuance | date | 10 | 0 | Y | N | 发货日期 | |
7 | delivery_number | varchar | 30 | 0 | Y | N | 配送订单 | |
8 | ordinary_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
9 | shipping_address | varchar | 64 | 0 | Y | N | 收货地址 | |
10 | delivery_status | varchar | 64 | 0 | Y | N | 配送状态 | |
11 | signing_status | varchar | 64 | 0 | Y | N | 签收状态 | |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | contact_name | varchar | 255 | 0 | Y | N | 联系人名字 | |
14 | merchant_id | int | 10 | 0 | Y | N | 商家id | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | message_id | int | 10 | 0 | N | Y | 留言板ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
3 | title | varchar | 64 | 0 | Y | N | 标题: | |
4 | content | longtext | 2147483647 | 0 | N | N | 内容: | |
5 | nickname | varchar | 32 | 0 | N | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像: | |
7 | | varchar | 125 | 0 | Y | N | 留言者邮箱 | |
8 | phone | varchar | 11 | 0 | Y | N | 留言者手机号码 | |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
11 | reply | longtext | 2147483647 | 0 | Y | N | 回复 | |
12 | reply_state | tinyint | 4 | 0 | Y | N | 0 | 回复状态 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | order_id | int | 10 | 0 | N | Y | 订单ID: | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单号: | |
3 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
4 | title | varchar | 32 | 0 | Y | N | 商品标题: | |
5 | img | varchar | 255 | 0 | Y | N | 商品图片: | |
6 | price | double | 10 | 2 | N | N | 0.00 | 价格: |
7 | price_ago | double | 10 | 2 | N | N | 0.00 | 原价: |
8 | num | int | 10 | 0 | N | N | 1 | 数量: |
9 | price_count | double | 8 | 2 | N | N | 0.00 | 总价: |
10 | norms | varchar | 255 | 0 | Y | N | 规格: | |
11 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
12 | contact_name | varchar | 32 | 0 | Y | N | 联系人姓名: | |
13 | contact_email | varchar | 125 | 0 | Y | N | 联系人邮箱: | |
14 | contact_phone | varchar | 11 | 0 | Y | N | 联系人手机: | |
15 | contact_address | varchar | 255 | 0 | Y | N | 收件地址: | |
16 | postal_code | varchar | 9 | 0 | Y | N | 邮政编码: | |
17 | user_id | int | 10 | 0 | N | N | 0 | 买家ID: |
18 | merchant_id | mediumint | 8 | 0 | N | N | 0 | 商家ID: |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
21 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
22 | state | varchar | 16 | 0 | N | N | 待付款 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
23 | remark | text | 65535 | 0 | Y | N | 订单备注 | |
24 | delivery_state | varchar | 16 | 0 | Y | N | 未配送 | 发货状态:未配送,已配送 |
25 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | popular_strategy_id | int | 10 | 0 | N | Y | 热门攻略ID | |
2 | attraction_name | text | 65535 | 0 | Y | N | 景点名称 | |
3 | types_of_attractions | varchar | 64 | 0 | Y | N | 景点类型 | |
4 | scenic_spot_photos | varchar | 255 | 0 | Y | N | 景点照片 | |
5 | scenic_spot_evaluation | varchar | 64 | 0 | Y | N | 景点评价 | |
6 | guide_to_scenic_spots | longtext | 2147483647 | 0 | Y | N | 景点攻略 | |
7 | scenic_spot_ranking | text | 65535 | 0 | Y | N | 景点排名 | |
8 | details_link | varchar | 255 | 0 | Y | N | 详情链接 | |
9 | overview_of_scenic_spots | text | 65535 | 0 | Y | N | 景点概述 | |
10 | attraction_address | text | 65535 | 0 | Y | N | 景点地址 | |
11 | business_hours | text | 65535 | 0 | Y | N | 营业时间 | |
12 | ticket_type_information | longtext | 2147483647 | 0 | Y | N | 票种信息 | |
13 | transportation_guidelines | longtext | 2147483647 | 0 | Y | N | 交通指南 | |
14 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
15 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表scenic_area_information (景区信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | scenic_area_information_id | int | 10 | 0 | N | Y | 景区信息ID | |
2 | attraction_name | text | 65535 | 0 | Y | N | 景点名称 | |
3 | scenic_spot_pictures | varchar | 255 | 0 | Y | N | 景点图片 | |
4 | city_type | varchar | 64 | 0 | Y | N | 城市类型 | |
5 | admission_price | int | 10 | 0 | Y | N | 0 | 门票价格 |
6 | business_hours | text | 65535 | 0 | Y | N | 营业时间 | |
7 | overview_of_scenic_spots | text | 65535 | 0 | Y | N | 景点概述 | |
8 | attraction_address | text | 65535 | 0 | Y | N | 景点地址 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表scenic_area_reservation (景区预定)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | scenic_area_reservation_id | int | 10 | 0 | N | Y | 景区预定ID | |
2 | scenic_area_name | varchar | 64 | 0 | Y | N | 景区名称 | |
3 | scenic_area_location | varchar | 64 | 0 | Y | N | 景区位置 | |
4 | ticket_type | varchar | 64 | 0 | Y | N | 门票类型 | |
5 | admission_price | varchar | 64 | 0 | Y | N | 门票价格 | |
6 | purchasing_users | int | 10 | 0 | Y | N | 0 | 购买用户 |
7 | purchase_quantity | int | 10 | 0 | Y | N | 0 | 购买数量 |
8 | total_amount | varchar | 64 | 0 | Y | N | 合计金额 | |
9 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
10 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表specialty_cultural_and_creative_products (特产文创)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | specialty_cultural_and_creative_products_id | int | 10 | 0 | N | Y | 特产文创ID | |
2 | product_number | varchar | 64 | 0 | Y | N | 商品编号 | |
3 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
4 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
5 | cart_title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品html的标签中 | |
6 | cart_img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
7 | cart_description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
8 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
9 | cart_price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
10 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
11 | cart_type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
12 | cart_content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
13 | cart_img_1 | text | 65535 | 0 | Y | N | 主图1: | |
14 | cart_img_2 | text | 65535 | 0 | Y | N | 主图2: | |
15 | cart_img_3 | text | 65535 | 0 | Y | N | 主图3: | |
16 | cart_img_4 | text | 65535 | 0 | Y | N | 主图4: | |
17 | cart_img_5 | text | 65535 | 0 | Y | N | 主图5: | |
18 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
19 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | types_of_attractions_id | int | 10 | 0 | N | Y | 景点类型ID | |
2 | classification_of_tourist_attractions | varchar | 64 | 0 | Y | N | 景点分类 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
第四章 系统详细设计与实现
4.1客户端:普通用户功能模块
4.1.1用户登录界面
用户登录,用户通过输入账号和密码,选择角色并点击登录进行系统登录操作,如下图所示。
图4-1用户登录界面图
登录的关键代码如下:
const md5 = require("md5");
var Controller = require("../core/controller.js");
class Login extends Controller {
constructor(config) {
super(
Object.assign({
tpl: "./login/",
service: "user",
},
config
)
);
}
}
Login.prototype.api = async function(ctx) {
var body = ctx.request.body;
var obj = await $.services["user"].get_obj({
username: body.username
},{like:false});
if (obj) {
var group = await $.services["user_group"].get_obj({
name:obj.user_group
})
if (group){
if (group.name!=="管理员"){
var sql = "select examine_state from "+ group.source_table +" WHERE user_id = " + obj.user_id;
var userExamine = await $.mysql.run(sql);
if (userExamine && userExamine.length > 0 && userExamine[0].examine_state!=="已通过"){
return {
error: {
code: 70000,
message: "该用户审核未通过"
},
};
}
}
if (obj.state!==1){
return {
error: {
code: 70000,
message: "用户非可用状态,不能登录"
},
};
}
var password = md5(body.password);
if (password === obj.password) {
ctx.session.user = obj;
var date = Date.parse(new Date());
var token = md5(obj.user_id + "_" + date);
await $.services["access_token"].add({
token,
info: JSON.stringify(obj),
user_id:obj.user_id
});
obj.token = token;
return {
result: {obj}
};
} else {
return {
error: {
code: 70000,
message: "密码错误"
},
};
}
}else {
return {
error: {
code: 70000,
message: "用户组不存在"
},
};
}
} else {
return {
error: {
code: 70000,
message: "账户不存在"
}
};
}
};
4.1.2用户注册界面
注册,通过填写密码、昵称、邮箱、性别、姓名、邮箱、电话等信息,输入完成后选择提交即可注册成功,如下图所示。
图4-2注册界面图
注册的关键代码如下:
Register.prototype.index = async function(ctx) {
var group_list = await $.services["user_group"].get_list({}, Object.assign({}, this.config));
return await ctx.render(this.config.tpl + "index.html", {
group_list
});
};
Register.prototype.api = async function(ctx) {
var user = $.services.user;
var body = ctx.request.body;
var username = body.username;
var obj = await user.get_obj({
username
});
if (obj) {
return {
error: {
code: 70000,
message: "账户名已存在",
},
};
} else {
var password = md5(body.password);
var nickname = body.nickname;
var user_group = body.user_group;
var email = body.email;
var email_state= body.hasOwnProperty('email_state') ? body.email_state : 0;
var phone = body.phone;
var phone_state= body.hasOwnProperty('phone_state') ? body.phone_state : 0;
var avatar = body.avatar;
var bl_reg = await user.add({
username,
password,
nickname,
user_group,
email,
email_state,
phone,
phone_state,
avatar
});
if (bl_reg) {
return {
result: "注册成功"
};
} else {
return {
error: {
code: 70000,
message: "注册失败",
},
};
}
}
};
4.1.3前台首页界面
前台首页,普通用户进入“云游贵州”旅游系统,可以对首页、购物车、游黔社区、游黔资讯、景区信息、酒店信息、热门攻略、美食专区、特产文创、网站公告、我的(基本信息、收货地址、订单、景区预定、酒店订单、留言板管理、论坛管理、订单配送、收藏)等功能模块进行相对应操作,如下图所示。
图4-3前台首页界面图
4.1.4基本信息界面
基本信息,在基本信息页面用户可以修改头像、昵称、密码等操作,如下图所示。
图4-4基本信息界面图
4.1.5订单界面
订单详情,用户可以查看订单编号、下单时间、订单备注等订单信息,并对购买的订单进行支付。如下图所示。
图4-5订单详情界面图
4.1.6游黔资讯界面
游黔资讯,用户可以查看各类旅游资讯,包括景点介绍、活动推荐、路线规划等,为用户提供全面的旅游信息参考。如下图所示。
图4-6游黔资讯界面图
4.2 管理端:管理员功能模块
4.2.1管理员登录界面
管理员进入到操作界面,通过登录窗口进行在线填写自己的用户名、密码、角色进行登录,登录成功后进入到系统操作界面进行相应信息的获取,如下图所示。

图4-7管理员登录主界面图
4.2.2管理员首页功能界面
管理员登陆系统后,可以对后台首页、系统用户、景点类型管理、门票类型管理、景区信息管理、景区预定管理、酒店信息管理、酒店订单管理、热门攻略管理、美食专区管理、系统管理(轮播图)、留言管理、网站公告管理、资源管理(游黔资讯、新闻列表)、交流管理、商城管理等功能模块进行相对应操作,在首页界面还可以查看商品销售金额统计和商品销售数量统计表。如下图所示。

图4-8管理员首页功能界面图
4.2.3系统用户界面
系统用户,在系统用户页面,管理员可以对系统中所有的用户角色进行管控,包含了管理员、普通用户这两种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。如下图所示。

图4-9系统用户界面图
系统用户添加的关键代码如下:
Controller.prototype.add = async function(ctx) {
var result = await this.service.add(ctx.request.body, this.config);
if (this.service.error) {
return {
error: this.service.error,
};
}
return {
result,
};
};
删:
Controller.prototype.del = async function(ctx) {
if (!Object.keys(ctx.query).length) {
return {
code: 30000,
message: "删除条件不能为空!",
};
}
var result = await this.service.del(ctx.request.query, this.config);
if (this.service.error) {
return {
error: this.service.error,
};
}
return {
result,
};
};
改:
Service.prototype.set = async function(query, body, config) {
var sql = $.mysql.toSetSql(query, body, Object.assign({}, this.config, config || {}));
var ret = await this.run(sql);
return ret;
};
4.2.4门票类型管理界面
门票类型管理,管理员可以管理景点的门票类型,包括门票分类、门票价格等信息的管理。还可以添加新的门票类型。如下图所示。

图4-10门票类型列表界面图

图4-11门票类型添加界面图
4.2.5系统管理功能界面
系统管理,在系统管理页面管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。如下图所示。

图4-12系统管理界面图
轮播图上传的关键代码如下:
Controller.prototype.upload = async function(ctx) {
var req = ctx.request;
var query = req.query;
var url = "";
if (req.files && req.files.file) {
var f = req.files.file;
const render = fs.createReadStream(f.path);
var name = f.name;
var dir = f.dir || "";
var file = _dir + dir + name;
try {
if (fs.existsSync(file)) {
var arr = name.split(".");
name = arr[0];
var extension = arr[arr.length - 1];
var num = 10000;
for (var i = 0; i < num; i++) {
var na = name + "_" + (i + 1) + "." + extension;
file = path.join(_dir, na);
if (!fs.existsSync(file)) {
name = na;
break;
}
}
}
const upStream = fs.createWriteStream(file);
render.pipe(upStream);
url = _path + name;
} catch (e) {
console.log("上传失败:", e);
}
return {
result: {
url
}
};
} else {
return {
code: 10000,
message: "上传的文件(file)不能为空!",
};
}
};
4.2.6特产文创界面
特产文创,管理员点击“商城管理”,管理员可以管理特产文创商品的信息,包括商品名称、价格、描述、图片等。如下图所示。

图4-13特产文创界面图
4.2.7订单配送界面
订单配送,提供订单配送管理功能,包括配送方式的设置、配送地址的管理等。支持订单的状态管理,如待支付、已支付、已发货、已完成等。如下图所示。

图4-14订单配送界面
第五章 系统的测试
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些错误,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
5.2 系统测试用例
系统测试包括:用户登录功能测试、特产文创查看功能测试、添加订单配送、密码修改功能测试,如表5-1、5-2、5-3、5-4所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
特产文创查看功能测试:
表5-2 特产文创查看功能测试表
用例名称 | 特产文创查看 |
目的 | 测试特产文创查看功能 |
前提 | 用户登录 |
测试流程 | 点击特产文创列表 |
预期结果 | 可以查看到所有特产文创 |
实际结果 | 实际结果与预期结果一致 |
管理员添加订单配送测试:
表5-3 管理员添加订单配送测试表
用例名称 | 订单配送发布测试用例 |
目的 | 测试订单配送发布功能 |
前提 | 用户正常登录情况下 |
测试流程 | 1)点击订单配送管理,然后点击添加后并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面首页会显示新的订单配送 |
实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表5-4密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
5.3 系统测试结果
通过编写“云游贵州”旅游系统的测试用例,已经检测完毕用户登录功能测试、特产文创查看功能测试、添加订单配送、密码修改功能测试,通过这些测试为“云游贵州”旅游系统的后期推广运营提供了强力的技术支撑。
经过了几个月的努力,本“云游贵州”旅游系统终于完成了,虽然在校期间也开发过一些小型的小程序,但是都是在老师的讲解以及辅助下完成的,没有经历过开发之前的需求分析、系统分析,都是直接从系统设计开始的,因此开发“云游贵州”旅游系统对我意义重大。
在开发系统最初,首先对各个“云游贵州”旅游系统方面的需求进行调研,了解对于用户来说,开发的系统需要实现哪些功能才能满足“云游贵州”旅游系统需求,对需求进行分析;其次选择自己比较熟悉的Nodejs语言,MYSQL数据库来设计开发,通过知网库、学校图书馆等地方查阅、学习这些技术,掌握编程的思想和方法,然后就是对系统进行分析,从系统开发的可行性、系统实现的功能、系统应该具备的性能以及系统的操作流程方面,对系统进行全方位的分析,确定系统的最终功能,从而对系统的功能和数据库进行设计,最后就是系统的实现以及对实现的功能的测试,确保系统能够稳定的运行。
在开发的过程中暴露出了自己的很多问题,比如前期的准备还是不够充分,不能完全掌握其操作流程;在开发过程中对Nodejs的编程掌握的还不够熟练以及对系统的环境配置上还存在很多问题,经常会导致项目在运行的时候出现错误。学无止境,通过一边查阅资料一边向导师请教,慢慢的解决了这些问题,在以后的学习、工作者我会更加严谨,通过本项目的开发,我将会受益终生!
参考文献
[1]郭亮,杨裔,秦炳峰,等.基于大数据技术的甘肃智慧旅游系统[J].大数据,2024,10(01):157-169.
[2]闫东坡,原燕妮,毛贞炜,等.开封市红色博物馆智慧旅游系统建设研究[J].旅游纵览,2023,(22):86-89.
[3]张大秀,朱屹诚.基于Java的碧海苍梧旅游系统设计与实现[J].现代信息科技,2023,7(11):1-6.DOI:10.19850/j.cnki.2096-4706.2023.11.001.
[4]黄曾力.乡村虚拟旅游系统设计与实现[D].西南民族大学,2023.DOI:10.27417/d.cnki.gxnmc.2023.000106.
[5]孙国程,陈大睿,张昭艳,等.基于Node.js和MongoDB的公益帮扶小程序设计与实现[J].软件,2023,44(04):78-80.
[6]陶旭文,肖诚,谷余,等.南岳虚拟旅游系统设计[J].旅游与摄影,2023,(07):74-76.
[7]易志帅,苏拓,曾海燕,等.基于Restful的智慧化旅游系统设计[J].中国新技术新产品,2023,(02):33-35.DOI:10.13612/j.cnki.cntp.2023.02.027.
[8]D. K K ,D. N T .Complementing JavaScript in High-Performance Node.js and Web Applications with Rust and WebAssembly[J].Electronics,2022,11(19):3217-3217.
[9]王会燕,房璇,刘天风,等.二维动画在苏州“运河十景”VR全景旅游系统开发中的应用[J].新媒体研究,2022,8(15):26-29.DOI:10.16604/j.cnki.issn2096-0360.2022.15.006.
[10]Stefan P ,Sasko R ,Thomas F .M2FaaS: Transparent and fault tolerant FaaSification of Node.js monolith code blocks[J].Future Generation Computer Systems,2022,13557-71.
[11]闵亮,薛格格,张玉欣,等.基于Node.JS博客系统的设计与实现[J].电子设计工程,2022,30(07):37-41.DOI:10.14022/j.issn1674-6236.2022.07.008.
[12]陈明雪,赵勇,周小丽,等.基于Node.js和Bootstrap的图书管理系统设计与研究[J].现代信息科技,2021,5(24):12-15.DOI:10.19850/j.cnki.2096-4706.2021.24.004.
[13]李浪,基于AR、LBS等新兴技术的民族特色旅游系统.四川省,四川汇德轩文化艺术有限公司,2021-12-24.
[14]吴泳,黄天勇,闻平.基于Cesium的虚拟旅游系统研究[J].地理空间信息,2021,19(11):155-157+10.
[15]仇念飞.高并发智慧旅游微服务系统设计与实现[D].桂林电子科技大学,2021.DOI:10.27049/d.cnki.ggldc.2021.001041.
[16]赵婉琳,彭仕霖,杜孟新.基于Node.js的汽车数据中台系统的设计与实现[J].仪器仪表标准化与计量,2021,(05):23-26.
[17]Uzayr B S .Getting the Most out of Node.js Frameworks:The Essential Tools and Libraries[M].CRC Press:2021-09-12.
[18]Christoforos N ,Panagiotis B ,Dimitris A , et al.NodeXP: NOde.js server-side JavaScript injection vulnerability DEtection and eXPloitation[J].Journal of Information Security and Applications,2021,58
[19]Kim Y H ,Kim H J ,Oh K H , et al.DAPP: automatic detection and analysis of prototype pollution vulnerability in Node.js modules[J].International Journal of Information Security,2021,(prepublish):1-23.
[20]Taufik ,Adhilaksono B ,Effendy F .Performance Comparison of Web Backend and Database: A Case Study of Node.JS, Golang and MySQL, Mongo DB[J].Recent Advances in Computer Science and Communications,2021,14(6):1955-1961.
致 谢
“云游贵州”旅游系统的完成,如何实现的更好,其中付出的努力是很大的,这段时光将会终身难忘。
“云游贵州”旅游系统的设计可以顺利完成,首先,我要感谢我的指导老师,他在我遇到设计问题时及时帮助了我,并在我对设计感到困惑时给了我充分的指导。在他的帮助下,我可以完成高质量的毕业设计。在“云游贵州”旅游系统的设计和开发中,指导老师提出了许多实用的意见和建议,并为我提供了大量相关的研究资料,使我对设计有了更深入的了解。只有在老师的指导下,才能在毕业设计中取得成功。在此,我要向指导老师表示深深的谢意。
在此,我还要感谢我的同学们,他们为我的设计提供了许多参考意见,并与我讨论了设计中的问题,从而使我的设计一步一步走向成熟。
点赞+收藏+关注 → 私信领取本源代码、数据库