> 技术文档 > 基于微信小程序的家具销售系统设计与实现 毕业设计源码53107

基于微信小程序的家具销售系统设计与实现 毕业设计源码53107

摘  要

随着移动互联网的迅猛发展,智能手机和移动应用已经成为人们生活中不可或缺的一部分。其中,微信小程序凭借其即用即走、无需安装的特点,深受用户喜爱。同时,家具作为人们生活中重要的消费品,其销售市场潜力巨大。因此,将微信小程序与家具销售相结合,设计并实现一个基于微信小程序的家具销售系统,不仅能够为用户提供更加便捷、高效的购物体验,还能为家具企业开辟新的销售渠道,实现数字化转型。

该系统将充分利用微信小程序的社交属性和用户粘性,通过丰富的功能设计和用户体验优化,吸引用户在微信平台上浏览、选择和购买家具产品。此外,该系统还将注重安全性和稳定性,保障用户信息和交易数据的安全可靠。通过不断的技术创新和功能完善,期望该系统能够成为家具销售领域的一股新力量,推动行业的持续发展。

Node.js 是一个基于 JavaScript 的开源跨平台服务器端运行环境,它具有高效、灵活、可扩展等特点。通过使用 Node.js 技术,可以构建一个功能强大且易于使用的家具销售系统。

关键词:家具销售系统;Node.js ;MYSQL

Design and Implementation of Furniture Sales System Based on WeChat Mini Program

Abstract

With the rapid development of mobile Internet, smart phones and mobile applications have become an indispensable part of people\'s life. Among them, WeChat mini programs are deeply loved by users due to their feature of being ready to use and no installation required. Meanwhile, furniture, as an important consumer product in people\'s lives, has enormous sales market potential. Therefore, combining WeChat mini programs with furniture sales, designing and implementing a furniture sales system based on WeChat mini programs can not only provide users with a more convenient and efficient shopping experience, but also open up new sales channels for furniture enterprises and achieve digital transformation.

The system will fully utilize the social attributes and user stickiness of WeChat mini programs, attract users to browse, select, and purchase furniture products on the WeChat platform through rich functional design and user experience optimization. In addition, the system will also focus on security and stability, ensuring the security and reliability of user information and transaction data. Through continuous technological innovation and functional improvement, it is expected that this system can become a new force in the furniture sales field, promoting the sustainable development of the industry.

Node.js is an open-source cross platform server-side runtime environment based on JavaScript, which has the characteristics of efficiency, flexibility, and scalability. By using Node.js technology, a powerful and easy-to-use furniture sales system can be built.

Key words: Furniture sales system; Node.js; MYSQL

目   录

第一章 绪 论

1.1选题背景和意义

1.2国内外研究现状

1.3论文结构与章节安排

第二章 系统分析

2.1可行性分析

2.1.1技术可行性   

2.1.2经济可行性

2.1.3操作可行性 

2.2系统功能分析

2.2.1 功能性分析

2.2.2 非功能性分析

2.3系统用例分析

2.4系统操作流程

2.4.1用户登录流程

2.4.2信息添加流程

2.4.3信息删除流程

第三章 系统总体设计

3.1系统架构设计

3.2开发流程设计

3.3数据库设计

3.3.1实体ER图

3.3.2数据表

第四章 系统详细设计与实现

4.1用户端:普通用户功能模块

4.1.1用户登录界面

4.1.2用户注册界面

4.1.3前台首页界面

4.1.4基本信息界面

4.1.5订单界面

4.2 管理端:管理员功能模块

4.2.1管理员登录界面

4.2.2管理员首页功能界面

4.2.3系统用户界面

4.2.4系统管理功能界面

4.2.5产品商城界面

4.2.6订单配送界面

第五章  系统的测试

5.1系统测试的目的

5.2 系统测试用例

5.3 系统测试结果

结  论

参考文献

致  谢

第一章 绪 论

1.1选题背景和意义

随着移动互联网的深入发展和智能手机的普及,微信小程序作为一种轻量级、易传播的移动应用形式,逐渐成为了连接用户与服务的新桥梁。同时,家具作为生活必需品,其销售市场日益扩大,传统销售模式已难以满足消费者日益增长的个性化需求。因此,将微信小程序与家具销售相结合,设计并实现一个基于微信小程序的家具销售系统,具有重要的研究背景和意义。

该系统不仅能为消费者提供一个便捷、高效的家具购物平台,还能为家具企业创造新的销售机会,拓宽市场渠道。通过微信小程序,消费者可以随时随地浏览和购买家具产品,享受个性化的购物体验;而家具企业则可以利用微信小程序的社交属性和用户数据,进行精准营销和客户服务,提升品牌影响力和市场竞争力。

此外,该系统还能推动家具行业的数字化转型和创新发展,为行业的可持续发展注入新的活力。因此,基于微信小程序的家具销售系统设计与实现的研究,具有重要的现实意义和长远的发展前景。

1.2国内外研究现状

基于微信小程序的家具销售系统设计与实现,在国内外都呈现出积极的研究和发展趋势。

在国内,随着微信小程序的日益普及和用户基数的不断扩大,越来越多的家具企业开始关注并尝试利用微信小程序进行销售。这些企业通过与专业的技术团队合作,设计和开发出符合中国消费者使用习惯和审美需求的家具销售小程序。这些小程序不仅提供了丰富的产品展示和购买功能,还结合了大数据分析、智能推荐等先进技术,为用户提供更加个性化的购物体验。同时,国内的研究者也在不断探索和创新,通过深入研究微信小程序的技术特点和应用场景,为家具销售系统的优化和发展提供理论支持和实践经验。

在国外,尽管微信小程序并未像在国内那样普及,但类似的移动应用平台(如Facebook的Instant Articles、Apple的Newsstand等)也为家具销售提供了新的机会。许多国际家具品牌已经利用这些平台,通过移动应用或响应式网站等形式,实现了家具产品的在线销售。同时,国外的研究者也在关注移动销售领域的创新和实践,通过深入研究和探索,为家具销售系统的发展提供了宝贵的经验和启示。

综合来看,基于微信小程序的家具销售系统设计与实现,在国内外都受到了广泛的关注和重视。随着技术的不断创新和应用场景的不断拓展,相信未来这一领域将取得更加显著的成果和突破。同时,国内外的研究者和企业也需要继续加强合作和交流,共同推动家具销售系统的发展和创新。

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-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数据表

我们可以根据数据结构的详细分析要求,我们根据输入和输出数据量的要求进行分析,确定什么表表,结构之间的关系,我们可以验证,调整和完善,查询和浏览过程,可以实现数据库,以使用户对数据和功能有更多要求。

基于系统使用的数据库管理系统的特点,对数据库的概念模型进行了转换和构建。但是,这个系统只需要充分考虑家具销售系统的功能,而且组织比较清晰。数据表如下。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

用户编号:

表address (收货地址:)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

默认判断

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表cart (购物车)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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]用于产品规格描述

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表consumer_users (消费用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

consumer_users_id

int

10

0

N

Y

消费用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

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

更新时间

表goods (商品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

goods_id

mediumint

8

0

N

Y

产品id:[0,8388607]

2

title

varchar

125

0

Y

N

标题:[0,125]用于产品和html的标签中</p> </td> <td> <p>3</p> </td> <td> <p>img</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>封面图:用于显示于产品列表页</p> </td> <td> <p>4</p> </td> <td> <p>description</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>描述:[0,255]用于产品规格描述</p> </td> <td> <p>5</p> </td> <td> <p>price_ago</p> </td> <td> <p>double</p> </td> <td> <p>8</p> </td> <td> <p>2</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0.00</p> </td> <td> <p>原价:[1]</p> </td> <td> <p>6</p> </td> <td> <p>price</p> </td> <td> <p>double</p> </td> <td> <p>8</p> </td> <td> <p>2</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0.00</p> </td> <td> <p>卖价:[1]</p> </td> <td> <p>7</p> </td> <td> <p>sales</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>销量:[0,1000000000]</p> </td> <td> <p>8</p> </td> <td> <p>inventory</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>商品库存</p> </td> <td> <p>9</p> </td> <td> <p>type</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>商品分类:</p> </td> <td> <p>10</p> </td> <td> <p>hits</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>点击量:[0,1000000000]访问这篇产品的人次</p> </td> <td> <p>11</p> </td> <td> <p>content</p> </td> <td> <p>longtext</p> </td> <td> <p>2147483647</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>正文:产品的主体内容</p> </td> <td> <p>12</p> </td> <td> <p>img_1</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>主图1:</p> </td> <td> <p>13</p> </td> <td> <p>img_2</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>主图2:</p> </td> <td> <p>14</p> </td> <td> <p>img_3</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>主图3:</p> </td> <td> <p>15</p> </td> <td> <p>img_4</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>主图4:</p> </td> <td> <p>16</p> </td> <td> <p>img_5</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>主图5:</p> </td> <td> <p>17</p> </td> <td> <p>create_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>创建时间:</p> </td> <td> <p>18</p> </td> <td> <p>update_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>更新时间:</p> </td> <td> <p>19</p> </td> <td> <p>customize_field</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>自定义字段</p> </td> <td> <p>20</p> </td> <td> <p>source_table</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>来源表:</p> </td> <td> <p>21</p> </td> <td> <p>source_field</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>来源字段:</p> </td> <td> <p>22</p> </td> <td> <p>source_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>来源ID:</p> </td> <td> <p>23</p> </td> <td> <p>user_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>添加人</p> </td> </tbody> <p>表goods_type (商品类型)</p> <tbody> <td> <p>编号</p> </td> <td> <p>名称</p> </td> <td> <p>数据类型</p> </td> <td> <p>长度</p> </td> <td> <p>小数位</p> </td> <td> <p>允许空值</p> </td> <td> <p>主键</p> </td> <td> <p>默认值</p> </td> <td> <p>说明</p> </td> <td> <p>1</p> </td> <td> <p>type_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>Y</p> </td> <td> </td> <td> <p>商品分类ID:</p> </td> <td> <p>2</p> </td> <td> <p>father_id</p> </td> <td> <p>smallint</p> </td> <td> <p>5</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>上级分类ID:[0,32767]</p> </td> <td> <p>3</p> </td> <td> <p>name</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>商品名称:</p> </td> <td> <p>4</p> </td> <td> <p>desc</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>描述:</p> </td> <td> <p>5</p> </td> <td> <p>icon</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>图标:</p> </td> <td> <p>6</p> </td> <td> <p>source_table</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>来源表:</p> </td> <td> <p>7</p> </td> <td> <p>source_field</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>来源字段:</p> </td> <td> <p>8</p> </td> <td> <p>create_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>创建时间:</p> </td> <td> <p>9</p> </td> <td> <p>update_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>更新时间:</p> </td> </tbody> <p>表hits (用户点击)</p> <tbody> <td> <p>编号</p> </td> <td> <p>名称</p> </td> <td> <p>数据类型</p> </td> <td> <p>长度</p> </td> <td> <p>小数位</p> </td> <td> <p>允许空值</p> </td> <td> <p>主键</p> </td> <td> <p>默认值</p> </td> <td> <p>说明</p> </td> <td> <p>1</p> </td> <td> <p>hits_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>Y</p> </td> <td> </td> <td> <p>点赞ID:</p> </td> <td> <p>2</p> </td> <td> <p>user_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>点赞人:</p> </td> <td> <p>3</p> </td> <td> <p>create_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>创建时间:</p> </td> <td> <p>4</p> </td> <td> <p>update_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>更新时间:</p> </td> <td> <p>5</p> </td> <td> <p>source_table</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>来源表:</p> </td> <td> <p>6</p> </td> <td> <p>source_field</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>来源字段:</p> </td> <td> <p>7</p> </td> <td> <p>source_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>来源ID:</p> </td> </tbody> <p>表logistics_delivery (物流配送)</p> <tbody> <td> <p>编号</p> </td> <td> <p>名称</p> </td> <td> <p>数据类型</p> </td> <td> <p>长度</p> </td> <td> <p>小数位</p> </td> <td> <p>允许空值</p> </td> <td> <p>主键</p> </td> <td> <p>默认值</p> </td> <td> <p>说明</p> </td> <td> <p>1</p> </td> <td> <p>logistics_delivery_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>Y</p> </td> <td> </td> <td> <p>物流配送ID</p> </td> <td> <p>2</p> </td> <td> <p>order_number</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>订单号</p> </td> <td> <p>3</p> </td> <td> <p>product_name</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>商品名称</p> </td> <td> <p>4</p> </td> <td> <p>purchase_quantity</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>购买数量</p> </td> <td> <p>5</p> </td> <td> <p>total_transaction_amount</p> </td> <td> <p>double</p> </td> <td> <p>11</p> </td> <td> <p>2</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> <p>0.00</p> </td> <td> <p>交易总额</p> </td> <td> <p>6</p> </td> <td> <p>the_date_of_issuance</p> </td> <td> <p>date</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>发货日期</p> </td> <td> <p>7</p> </td> <td> <p>delivery_number</p> </td> <td> <p>varchar</p> </td> <td> <p>30</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>配送订单</p> </td> <td> <p>8</p> </td> <td> <p>ordinary_users</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>普通用户</p> </td> <td> <p>9</p> </td> <td> <p>shipping_address</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>收货地址</p> </td> <td> <p>10</p> </td> <td> <p>delivery_status</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>配送状态</p> </td> <td> <p>11</p> </td> <td> <p>signing_status</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>签收状态</p> </td> <td> <p>12</p> </td> <td> <p>recommend</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>智能推荐</p> </td> <td> <p>13</p> </td> <td> <p>contact_name</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>联系人名字</p> </td> <td> <p>14</p> </td> <td> <p>merchant_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>商家id</p> </td> <td> <p>15</p> </td> <td> <p>create_time</p> </td> <td> <p>datetime</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>创建时间</p> </td> <td> <p>16</p> </td> <td> <p>update_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>更新时间</p> </td> </tbody> <p>表notice (公告)</p> <tbody> <td> <p>编号</p> </td> <td> <p>名称</p> </td> <td> <p>数据类型</p> </td> <td> <p>长度</p> </td> <td> <p>小数位</p> </td> <td> <p>允许空值</p> </td> <td> <p>主键</p> </td> <td> <p>默认值</p> </td> <td> <p>说明</p> </td> <td> <p>1</p> </td> <td> <p>notice_id</p> </td> <td> <p>mediumint</p> </td> <td> <p>8</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>Y</p> </td> <td> </td> <td> <p>公告id:</p> </td> <td> <p>2</p> </td> <td> <p>title</p> </td> <td> <p>varchar</p> </td> <td> <p>125</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>标题:</p> </td> <td> <p>3</p> </td> <td> <p>content</p> </td> <td> <p>longtext</p> </td> <td> <p>2147483647</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>正文:</p> </td> <td> <p>4</p> </td> <td> <p>create_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>创建时间:</p> </td> <td> <p>5</p> </td> <td> <p>update_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>更新时间:</p> </td> </tbody> <p>表order (订单)</p> <tbody> <td> <p>编号</p> </td> <td> <p>名称</p> </td> <td> <p>数据类型</p> </td> <td> <p>长度</p> </td> <td> <p>小数位</p> </td> <td> <p>允许空值</p> </td> <td> <p>主键</p> </td> <td> <p>默认值</p> </td> <td> <p>说明</p> </td> <td> <p>1</p> </td> <td> <p>order_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>Y</p> </td> <td> </td> <td> <p>订单ID:</p> </td> <td> <p>2</p> </td> <td> <p>order_number</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>订单号:</p> </td> <td> <p>3</p> </td> <td> <p>goods_id</p> </td> <td> <p>mediumint</p> </td> <td> <p>8</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>商品id:[0,8388607]</p> </td> <td> <p>4</p> </td> <td> <p>title</p> </td> <td> <p>varchar</p> </td> <td> <p>32</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>商品标题:</p> </td> <td> <p>5</p> </td> <td> <p>img</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>商品图片:</p> </td> <td> <p>6</p> </td> <td> <p>price</p> </td> <td> <p>double</p> </td> <td> <p>10</p> </td> <td> <p>2</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0.00</p> </td> <td> <p>价格:</p> </td> <td> <p>7</p> </td> <td> <p>price_ago</p> </td> <td> <p>double</p> </td> <td> <p>10</p> </td> <td> <p>2</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0.00</p> </td> <td> <p>原价:</p> </td> <td> <p>8</p> </td> <td> <p>num</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>1</p> </td> <td> <p>数量:</p> </td> <td> <p>9</p> </td> <td> <p>price_count</p> </td> <td> <p>double</p> </td> <td> <p>8</p> </td> <td> <p>2</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0.00</p> </td> <td> <p>总价:</p> </td> <td> <p>10</p> </td> <td> <p>norms</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>规格:</p> </td> <td> <p>11</p> </td> <td> <p>type</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>未分类</p> </td> <td> <p>商品分类:</p> </td> <td> <p>12</p> </td> <td> <p>contact_name</p> </td> <td> <p>varchar</p> </td> <td> <p>32</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>联系人姓名:</p> </td> <td> <p>13</p> </td> <td> <p>contact_email</p> </td> <td> <p>varchar</p> </td> <td> <p>125</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>联系人邮箱:</p> </td> <td> <p>14</p> </td> <td> <p>contact_phone</p> </td> <td> <p>varchar</p> </td> <td> <p>11</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>联系人手机:</p> </td> <td> <p>15</p> </td> <td> <p>contact_address</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>收件地址:</p> </td> <td> <p>16</p> </td> <td> <p>postal_code</p> </td> <td> <p>varchar</p> </td> <td> <p>9</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>邮政编码:</p> </td> <td> <p>17</p> </td> <td> <p>user_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>买家ID:</p> </td> <td> <p>18</p> </td> <td> <p>merchant_id</p> </td> <td> <p>mediumint</p> </td> <td> <p>8</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>商家ID:</p> </td> <td> <p>19</p> </td> <td> <p>create_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>创建时间:</p> </td> <td> <p>20</p> </td> <td> <p>update_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>更新时间:</p> </td> <td> <p>21</p> </td> <td> <p>description</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>描述:[0,255]用于产品规格描述</p> </td> <td> <p>22</p> </td> <td> <p>state</p> </td> <td> <p>varchar</p> </td> <td> <p>16</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>待付款</p> </td> <td> <p>订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成</p> </td> <td> <p>23</p> </td> <td> <p>remark</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>订单备注</p> </td> <td> <p>24</p> </td> <td> <p>delivery_state</p> </td> <td> <p>varchar</p> </td> <td> <p>16</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> <p>未配送</p> </td> <td> <p>发货状态:未配送,已配送</p> </td> <td> <p>25</p> </td> <td> <p>vip_discount</p> </td> <td> <p>double</p> </td> <td> <p>11</p> </td> <td> <p>2</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> <p>0.00</p> </td> <td> <p>折扣</p> </td> </tbody> <p>表praise (点赞)</p> <tbody> <td> <p>编号</p> </td> <td> <p>名称</p> </td> <td> <p>数据类型</p> </td> <td> <p>长度</p> </td> <td> <p>小数位</p> </td> <td> <p>允许空值</p> </td> <td> <p>主键</p> </td> <td> <p>默认值</p> </td> <td> <p>说明</p> </td> <td> <p>1</p> </td> <td> <p>praise_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>Y</p> </td> <td> </td> <td> <p>点赞ID:</p> </td> <td> <p>2</p> </td> <td> <p>user_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>点赞人:</p> </td> <td> <p>3</p> </td> <td> <p>create_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>创建时间:</p> </td> <td> <p>4</p> </td> <td> <p>update_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>更新时间:</p> </td> <td> <p>5</p> </td> <td> <p>source_table</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>来源表:</p> </td> <td> <p>6</p> </td> <td> <p>source_field</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>来源字段:</p> </td> <td> <p>7</p> </td> <td> <p>source_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>来源ID:</p> </td> <td> <p>8</p> </td> <td> <p>status</p> </td> <td> <p>bit</p> </td> <td> <p>1</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>1</p> </td> <td> <p>点赞状态:1为点赞,0已取消</p> </td> </tbody> <p>表product_mall (产品商城)</p> <tbody> <td> <p>编号</p> </td> <td> <p>名称</p> </td> <td> <p>数据类型</p> </td> <td> <p>长度</p> </td> <td> <p>小数位</p> </td> <td> <p>允许空值</p> </td> <td> <p>主键</p> </td> <td> <p>默认值</p> </td> <td> <p>说明</p> </td> <td> <p>1</p> </td> <td> <p>product_mall_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>Y</p> </td> <td> </td> <td> <p>产品商城ID</p> </td> <td> <p>2</p> </td> <td> <p>product_specifications</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>产品规格</p> </td> <td> <p>3</p> </td> <td> <p>product_manufacturer</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>产品厂商</p> </td> <td> <p>4</p> </td> <td> <p>praise_len</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>点赞数</p> </td> <td> <p>5</p> </td> <td> <p>cart_title</p> </td> <td> <p>varchar</p> </td> <td> <p>125</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>标题:[0,125]用于产品html的标签中</p> </td> <td> <p>6</p> </td> <td> <p>cart_img</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>封面图:用于显示于产品列表页</p> </td> <td> <p>7</p> </td> <td> <p>cart_description</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>描述:[0,255]用于产品规格描述</p> </td> <td> <p>8</p> </td> <td> <p>cart_price_ago</p> </td> <td> <p>double</p> </td> <td> <p>8</p> </td> <td> <p>2</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0.00</p> </td> <td> <p>原价:[1]</p> </td> <td> <p>9</p> </td> <td> <p>cart_price</p> </td> <td> <p>double</p> </td> <td> <p>8</p> </td> <td> <p>2</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0.00</p> </td> <td> <p>卖价:[1]</p> </td> <td> <p>10</p> </td> <td> <p>cart_inventory</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>商品库存</p> </td> <td> <p>11</p> </td> <td> <p>cart_type</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>未分类</p> </td> <td> <p>商品分类:</p> </td> <td> <p>12</p> </td> <td> <p>cart_content</p> </td> <td> <p>longtext</p> </td> <td> <p>2147483647</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>正文:产品的主体内容</p> </td> <td> <p>13</p> </td> <td> <p>cart_img_1</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>主图1:</p> </td> <td> <p>14</p> </td> <td> <p>cart_img_2</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>主图2:</p> </td> <td> <p>15</p> </td> <td> <p>cart_img_3</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>主图3:</p> </td> <td> <p>16</p> </td> <td> <p>cart_img_4</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>主图4:</p> </td> <td> <p>17</p> </td> <td> <p>cart_img_5</p> </td> <td> <p>text</p> </td> <td> <p>65535</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>主图5:</p> </td> <td> <p>18</p> </td> <td> <p>create_time</p> </td> <td> <p>datetime</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>创建时间</p> </td> <td> <p>19</p> </td> <td> <p>update_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>更新时间</p> </td> </tbody> <p>表slides (轮播图)</p> <tbody> <td> <p>编号</p> </td> <td> <p>名称</p> </td> <td> <p>数据类型</p> </td> <td> <p>长度</p> </td> <td> <p>小数位</p> </td> <td> <p>允许空值</p> </td> <td> <p>主键</p> </td> <td> <p>默认值</p> </td> <td> <p>说明</p> </td> <td> <p>1</p> </td> <td> <p>slides_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>Y</p> </td> <td> </td> <td> <p>轮播图ID:</p> </td> <td> <p>2</p> </td> <td> <p>title</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>标题:</p> </td> <td> <p>3</p> </td> <td> <p>content</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>内容:</p> </td> <td> <p>4</p> </td> <td> <p>url</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>链接:</p> </td> <td> <p>5</p> </td> <td> <p>img</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>轮播图:</p> </td> <td> <p>6</p> </td> <td> <p>hits</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>点击量:</p> </td> <td> <p>7</p> </td> <td> <p>create_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>创建时间:</p> </td> <td> <p>8</p> </td> <td> <p>update_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>更新时间:</p> </td> </tbody> <p>表upload (文件上传)</p> <tbody> <td> <p>编号</p> </td> <td> <p>名称</p> </td> <td> <p>数据类型</p> </td> <td> <p>长度</p> </td> <td> <p>小数位</p> </td> <td> <p>允许空值</p> </td> <td> <p>主键</p> </td> <td> <p>默认值</p> </td> <td> <p>说明</p> </td> <td> <p>1</p> </td> <td> <p>upload_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>Y</p> </td> <td> </td> <td> <p>上传ID</p> </td> <td> <p>2</p> </td> <td> <p>name</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>文件名</p> </td> <td> <p>3</p> </td> <td> <p>path</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>访问路径</p> </td> <td> <p>4</p> </td> <td> <p>file</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>文件路径</p> </td> <td> <p>5</p> </td> <td> <p>display</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>显示顺序</p> </td> <td> <p>6</p> </td> <td> <p>father_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>父级ID</p> </td> <td> <p>7</p> </td> <td> <p>dir</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>文件夹</p> </td> <td> <p>8</p> </td> <td> <p>type</p> </td> <td> <p>varchar</p> </td> <td> <p>32</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>文件类型</p> </td> </tbody> <p>表user (用户账户:用于保存用户登录信息)</p> <tbody> <td> <p>编号</p> </td> <td> <p>名称</p> </td> <td> <p>数据类型</p> </td> <td> <p>长度</p> </td> <td> <p>小数位</p> </td> <td> <p>允许空值</p> </td> <td> <p>主键</p> </td> <td> <p>默认值</p> </td> <td> <p>说明</p> </td> <td> <p>1</p> </td> <td> <p>user_id</p> </td> <td> <p>mediumint</p> </td> <td> <p>8</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>Y</p> </td> <td> </td> <td> <p>用户ID:[0,8388607]用户获取其他与用户相关的数据</p> </td> <td> <p>2</p> </td> <td> <p>state</p> </td> <td> <p>smallint</p> </td> <td> <p>5</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>1</p> </td> <td> <p>账户状态:[0,10](1可用|2异常|3已冻结|4已注销)</p> </td> <td> <p>3</p> </td> <td> <p>user_group</p> </td> <td> <p>varchar</p> </td> <td> <p>32</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>所在用户组:[0,32767]决定用户身份和权限</p> </td> <td> <p>4</p> </td> <td> <p>login_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>上次登录时间:</p> </td> <td> <p>5</p> </td> <td> <p>phone</p> </td> <td> <p>varchar</p> </td> <td> <p>11</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>手机号码:[0,11]用户的手机号码,用于找回密码时或登录时</p> </td> <td> <p>6</p> </td> <td> <p>phone_state</p> </td> <td> <p>smallint</p> </td> <td> <p>5</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>手机认证:[0,1](0未认证|1审核中|2已认证)</p> </td> <td> <p>7</p> </td> <td> <p>username</p> </td> <td> <p>varchar</p> </td> <td> <p>16</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>用户名:[0,16]用户登录时所用的账户名称</p> </td> <td> <p>8</p> </td> <td> <p>nickname</p> </td> <td> <p>varchar</p> </td> <td> <p>16</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>昵称:[0,16]</p> </td> <td> <p>9</p> </td> <td> <p>password</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成</p> </td> <td> <p>10</p> </td> <td> <p>email</p> </td> <td> <p>varchar</p> </td> <td> <p>64</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>邮箱:[0,64]用户的邮箱,用于找回密码时或登录时</p> </td> <td> <p>11</p> </td> <td> <p>email_state</p> </td> <td> <p>smallint</p> </td> <td> <p>5</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>邮箱认证:[0,1](0未认证|1审核中|2已认证)</p> </td> <td> <p>12</p> </td> <td> <p>avatar</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>头像地址:[0,255]</p> </td> <td> <p>13</p> </td> <td> <p>open_id</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>针对获取用户信息字段</p> </td> <td> <p>14</p> </td> <td> <p>create_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>创建时间:</p> </td> <td> <p>15</p> </td> <td> <p>vip_level</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>会员等级</p> </td> <td> <p>16</p> </td> <td> <p>vip_discount</p> </td> <td> <p>double</p> </td> <td> <p>11</p> </td> <td> <p>2</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> <p>0.00</p> </td> <td> <p>会员折扣</p> </td> </tbody> <p>表user_group (用户组:用于用户前端身份和鉴权)</p> <tbody> <td> <p>编号</p> </td> <td> <p>名称</p> </td> <td> <p>数据类型</p> </td> <td> <p>长度</p> </td> <td> <p>小数位</p> </td> <td> <p>允许空值</p> </td> <td> <p>主键</p> </td> <td> <p>默认值</p> </td> <td> <p>说明</p> </td> <td> <p>1</p> </td> <td> <p>group_id</p> </td> <td> <p>mediumint</p> </td> <td> <p>8</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>Y</p> </td> <td> </td> <td> <p>用户组ID:[0,8388607]</p> </td> <td> <p>2</p> </td> <td> <p>display</p> </td> <td> <p>smallint</p> </td> <td> <p>5</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>100</p> </td> <td> <p>显示顺序:[0,1000]</p> </td> <td> <p>3</p> </td> <td> <p>name</p> </td> <td> <p>varchar</p> </td> <td> <p>16</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>名称:[0,16]</p> </td> <td> <p>4</p> </td> <td> <p>description</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>描述:[0,255]描述该用户组的特点或权限范围</p> </td> <td> <p>5</p> </td> <td> <p>source_table</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>来源表:</p> </td> <td> <p>6</p> </td> <td> <p>source_field</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>来源字段:</p> </td> <td> <p>7</p> </td> <td> <p>source_id</p> </td> <td> <p>int</p> </td> <td> <p>10</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>来源ID:</p> </td> <td> <p>8</p> </td> <td> <p>register</p> </td> <td> <p>smallint</p> </td> <td> <p>5</p> </td> <td> <p>0</p> </td> <td> <p>Y</p> </td> <td> <p>N</p> </td> <td> <p>0</p> </td> <td> <p>注册位置:</p> </td> <td> <p>9</p> </td> <td> <p>create_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>创建时间:</p> </td> <td> <p>10</p> </td> <td> <p>update_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>更新时间:</p> </td> </tbody> <p>表vip_level (论坛分类)</p> <tbody> <td> <p>编号</p> </td> <td> <p>名称</p> </td> <td> <p>数据类型</p> </td> <td> <p>长度</p> </td> <td> <p>小数位</p> </td> <td> <p>允许空值</p> </td> <td> <p>主键</p> </td> <td> <p>默认值</p> </td> <td> <p>说明</p> </td> <td> <p>1</p> </td> <td> <p>vip_level_id</p> </td> <td> <p>smallint</p> </td> <td> <p>5</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>Y</p> </td> <td> </td> <td> <p>等级ID:[0,10000]</p> </td> <td> <p>2</p> </td> <td> <p>name</p> </td> <td> <p>varchar</p> </td> <td> <p>255</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>等级名称:[2,16]</p> </td> <td> <p>3</p> </td> <td> <p>discount</p> </td> <td> <p>double</p> </td> <td> <p>11</p> </td> <td> <p>2</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> </td> <td> <p>折扣</p> </td> <td> <p>4</p> </td> <td> <p>create_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>创建时间:</p> </td> <td> <p>5</p> </td> <td> <p>update_time</p> </td> <td> <p>timestamp</p> </td> <td> <p>19</p> </td> <td> <p>0</p> </td> <td> <p>N</p> </td> <td> <p>N</p> </td> <td> <p>CURRENT_TIMESTAMP</p> </td> <td> <p>更新时间:</p> </td> </tbody> <p><strong><strong><strong>第</strong></strong><strong><strong>四</strong></strong><strong><strong>章 </strong></strong><strong><strong>系统详细设计与实现</strong></strong></strong></p> <h3><strong><strong><strong>4</strong></strong><strong><strong>.1</strong></strong><strong><strong>用户端:普通用户</strong></strong><strong><strong>功能模块</strong></strong></strong></h3> <h4><strong><strong><strong>4.1.1用户登录界面</strong></strong></strong></h4> <p>用户登录,用户通过输入账号和密码,选择角色并点击登录进行系统登录操作,如下图所示。</p> <p class="img-center"><img alt="" height="694" src="https://i-blog.csdnimg.cn/direct/4f79e79905434ef385e4baf857d35d94.png" alt="基于微信小程序的家具销售系统设计与实现 毕业设计源码53107" width="424" /></p> <p>图4-1用户登录界面图</p> <p>登录的关键代码如下:</p> <p>const md5 = require(\"md5\");</p> <p>var Controller = require(\"../core/controller.js\");</p> <p>class Login extends Controller {<!-- --></p> <p>constructor(config) {<!-- --></p> <p>super(</p> <p>Object.assign({<!-- --></p> <p>tpl: \"./login/\",</p> <p>service: \"user\",</p> <p>},</p> <p>config</p> <p>)</p> <p>);</p> <p>}</p> <p>}</p> <p>Login.prototype.api = async function(ctx) {<!-- --></p> <p>var body = ctx.request.body;</p> <p>var obj = await $.services[\"user\"].get_obj({<!-- --></p> <p>username: body.username</p> <p>},{like:false});</p> <p>if (obj) {<!-- --></p> <p>var group = await $.services[\"user_group\"].get_obj({<!-- --></p> <p>name:obj.user_group</p> <p>})</p> <p>if (group){<!-- --></p> <p>if (group.name!==\"管理员\"){<!-- --></p> <p>var sql = \"select examine_state from \"+ group.source_table +\" WHERE user_id = \" + obj.user_id;</p> <p>var userExamine = await $.mysql.run(sql);</p> <p>if (userExamine && userExamine.length > 0 && userExamine[0].examine_state!==\"已通过\"){<!-- --></p> <p>return {<!-- --></p> <p>error: {<!-- --></p> <p>code: 70000,</p> <p>message: \"该用户审核未通过\"</p> <p>},</p> <p>};</p> <p>}</p> <p>}</p> <p>if (obj.state!==1){<!-- --></p> <p>return {<!-- --></p> <p>error: {<!-- --></p> <p>code: 70000,</p> <p>message: \"用户非可用状态,不能登录\"</p> <p>},</p> <p>};</p> <p>}</p> <p>var password = md5(body.password);</p> <p>if (password === obj.password) {<!-- --></p> <p>ctx.session.user = obj;</p> <p>var date = Date.parse(new Date());</p> <p>var token = md5(obj.user_id + \"_\" + date);</p> <p>await $.services[\"access_token\"].add({<!-- --></p> <p>token,</p> <p>info: JSON.stringify(obj),</p> <p>user_id:obj.user_id</p> <p>});</p> <p>obj.token = token;</p> <p>return {<!-- --></p> <p>result: {obj}</p> <p>};</p> <p>} else {<!-- --></p> <p>return {<!-- --></p> <p>error: {<!-- --></p> <p>code: 70000,</p> <p>message: \"密码错误\"</p> <p>},</p> <p>};</p> <p>}</p> <p>}else {<!-- --></p> <p>return {<!-- --></p> <p>error: {<!-- --></p> <p>code: 70000,</p> <p>message: \"用户组不存在\"</p> <p>},</p> <p>};</p> <p>}</p> <p>} else {<!-- --></p> <p>return {<!-- --></p> <p>error: {<!-- --></p> <p>code: 70000,</p> <p>message: \"账户不存在\"</p> <p>}</p> <p>};</p> <p>}</p> <p>};</p> <h4><strong><strong><strong>4.1.2用户注册界面</strong></strong></strong></h4> <p>注册,通过填写密码、昵称、邮箱、性别、姓名、邮箱、电话等信息,输入完成后选择提交即可注册成功,如下图所示。</p> <p class="img-center"><img alt="" height="706" src="https://i-blog.csdnimg.cn/direct/406024267b474d65bd7ecefdf0736fc5.png" alt="基于微信小程序的家具销售系统设计与实现 毕业设计源码53107" width="396" /></p> <p>图4-2注册界面图</p> <p>注册的关键代码如下:</p> <p>Register.prototype.index = async function(ctx) {<!-- --></p> <p>var group_list = await $.services[\"user_group\"].get_list({}, Object.assign({}, this.config));</p> <p>return await ctx.render(this.config.tpl + \"index.html\", {<!-- --></p> <p>group_list</p> <p>});</p> <p>};</p> <p>Register.prototype.api = async function(ctx) {<!-- --></p> <p>var user = $.services.user;</p> <p>var body = ctx.request.body;</p> <p>var username = body.username;</p> <p>var obj = await user.get_obj({<!-- --></p> <p>username</p> <p>});</p> <p>if (obj) {<!-- --></p> <p>return {<!-- --></p> <p>error: {<!-- --></p> <p>code: 70000,</p> <p>message: \"账户名已存在\",</p> <p>},</p> <p>};</p> <p>} else {<!-- --></p> <p>var password = md5(body.password);</p> <p>var nickname = body.nickname;</p> <p>var user_group = body.user_group;</p> <p>var email = body.email;</p> <p>var email_state= body.hasOwnProperty(\'email_state\') ? body.email_state : 0;</p> <p>var phone = body.phone;</p> <p>var phone_state= body.hasOwnProperty(\'phone_state\') ? body.phone_state : 0;</p> <p>var avatar = body.avatar;</p> <p>var bl_reg = await user.add({<!-- --></p> <p>username,</p> <p>password,</p> <p>nickname,</p> <p>user_group,</p> <p>email,</p> <p>email_state,</p> <p>phone,</p> <p>phone_state,</p> <p>avatar</p> <p>});</p> <p>if (bl_reg) {<!-- --></p> <p>return {<!-- --></p> <p>result: \"注册成功\"</p> <p>};</p> <p>} else {<!-- --></p> <p>return {<!-- --></p> <p>error: {<!-- --></p> <p>code: 70000,</p> <p>message: \"注册失败\",</p> <p>},</p> <p>};</p> <p>}</p> <p>}</p> <p>};</p> <h4><strong><strong><strong>4.1.3前台首页界面</strong></strong></strong></h4> <p>前台首页,普通用户进入家具销售系统,可以对首页、产品商城、网站公告、我的(基本信息、收货地址、收藏、订单、购物车)等功能模块进行相对应操作,如下图所示。</p> <p class="img-center"><img alt="" height="811" src="https://i-blog.csdnimg.cn/direct/f3d10a1fbf984169b5182d47cd06395c.png" alt="基于微信小程序的家具销售系统设计与实现 毕业设计源码53107" width="397" /></p> <p>图4-3前台首页界面图</p> <h4><strong><strong><strong>4.1.4基本信息界面</strong></strong></strong></h4> <p>基本信息,在基本信息页面用户可以修改头像、昵称、密码等操作,如下图所示。</p> <p class="img-center"><img alt="" height="664" src="https://i-blog.csdnimg.cn/direct/44bf4a2155dc421eb0f9e485efd0d71c.png" alt="基于微信小程序的家具销售系统设计与实现 毕业设计源码53107" width="397" /></p> <p>图4-4基本信息界面图</p> <h4><strong><strong><strong>4.1.5订单界面</strong></strong></strong></h4> <p>订单详情,用户可以查看会员折扣、原价、需付款、订单编号、下单时间:订单备注等订单信息,并对购买的订单进行支付。如下图所示。</p> <p class="img-center"><img alt="" height="655" src="https://i-blog.csdnimg.cn/direct/eb054901bf72412bae4dde90e11d059a.png" alt="基于微信小程序的家具销售系统设计与实现 毕业设计源码53107" width="393" /></p> <p>图4-5订单详情界面图</p> <h3><strong><strong><strong>4</strong></strong><strong><strong>.2 </strong></strong><strong><strong>管理端:管理员</strong></strong><strong><strong>功能模块</strong></strong></strong></h3> <h4><strong><strong><strong>4.2.1管理员登录界面</strong></strong></strong></h4> <p>管理员进入到操作界面,通过登录窗口进行在线填写自己的用户名、密码、角色进行登录,登录成功后进入到系统操作界面进行相应信息的获取,如下图所示。</p> <p> <img alt="" height="526" src="https://i-blog.csdnimg.cn/direct/d2dbe7e0b9734083a93fb23af934963a.png" alt="基于微信小程序的家具销售系统设计与实现 毕业设计源码53107" width="761" /> </p> <p>图4-6管理员登录主界面图</p> <h4><strong><strong><strong>4.2.2管理员首页功能界面</strong></strong></strong></h4> <p>管理员登陆系统后,可以对后台首页、系统用户、系统管理(轮播图)、系统公告管理、商城管理(产品商城、分类列表、订单配送、会员等级)等功能模块进行相对应操作,在首页界面还可以查看商品销售金额统计和商品销售数量统计表。如下图所示。</p> <p class="img-center"><img alt="" height="757" src="https://i-blog.csdnimg.cn/direct/c7b33e728965443a91f9f9f0bfac73a0.png" alt="基于微信小程序的家具销售系统设计与实现 毕业设计源码53107" width="1200" /></p> <p>图4-7管理员首页功能界面图</p> <h4><strong><strong><strong>4.2.3系统用户界面</strong></strong></strong></h4> <p>系统用户,在系统用户页面,管理员可以对系统中所有的用户角色进行管控,包含了管理员、消费用户这两种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。如下图所示。</p> <p class="img-center"><img alt="" height="665" src="https://i-blog.csdnimg.cn/direct/78c98d15d09a4073b1807bb8a68f8064.png" alt="基于微信小程序的家具销售系统设计与实现 毕业设计源码53107" width="1200" /></p> <p>图4-8系统用户界面图</p> <p>系统用户添加的关键代码如下:</p> <p>Controller.prototype.add = async function(ctx) {<!-- --></p> <p>var result = await this.service.add(ctx.request.body, this.config);</p> <p>if (this.service.error) {<!-- --></p> <p>return {<!-- --></p> <p>error: this.service.error,</p> <p>};</p> <p>}</p> <p>return {<!-- --></p> <p>result,</p> <p>};</p> <p>};</p> <p>删:</p> <p>Controller.prototype.del = async function(ctx) {<!-- --></p> <p>if (!Object.keys(ctx.query).length) {<!-- --></p> <p>return {<!-- --></p> <p>code: 30000,</p> <p>message: \"删除条件不能为空!\",</p> <p>};</p> <p>}</p> <p>var result = await this.service.del(ctx.request.query, this.config);</p> <p>if (this.service.error) {<!-- --></p> <p>return {<!-- --></p> <p>error: this.service.error,</p> <p>};</p> <p>}</p> <p>return {<!-- --></p> <p>result,</p> <p>};</p> <p>};</p> <p>改:</p> <p>Service.prototype.set = async function(query, body, config) {<!-- --></p> <p>var sql = $.mysql.toSetSql(query, body, Object.assign({}, this.config, config || {}));</p> <p>var ret = await this.run(sql);</p> <p>return ret;</p> <p>};</p> <h4><strong><strong><strong>4.2.4系统管理功能界面</strong></strong></strong></h4> <p>系统管理,在系统管理页面管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。如下图所示。</p> <p> <img alt="" height="774" src="https://i-blog.csdnimg.cn/direct/a83750664a404c3abfe37c43878a601e.png" alt="基于微信小程序的家具销售系统设计与实现 毕业设计源码53107" width="1200" /> </p> <p>图4-9系统管理界面图</p> <p>轮播图上传的关键代码如下:</p> <p><span>Controller.prototype.upload = async function(ctx) {<!-- --></span></p> <p><span>var req = ctx.request;</span></p> <p><span>var query = req.query;</span></p> <p><span>var url = \"\";</span></p> <p><span>if (req.files && req.files.file) {<!-- --></span></p> <p><span>var f = req.files.file;</span></p> <p><span>const render = fs.createReadStream(f.path);</span></p> <p><span>var name = f.name;</span></p> <p><span>var dir = f.dir || \"\";</span></p> <p><span>var file = _dir + dir + name;</span></p> <p><span>try {<!-- --></span></p> <p><span>if (fs.existsSync(file)) {<!-- --></span></p> <p><span>var arr = name.split(\".\");</span></p> <p><span>name = arr[0];</span></p> <p><span>var extension = arr[arr.length - 1];</span></p> <p><span>var num = 10000;</span></p> <p><span>for (var i = 0; i < num; i++) {<!-- --></span></p> <p><span>var na = name + \"_\" + (i + 1) + \".\" + extension;</span></p> <p><span>file = path.join(_dir, na);</span></p> <p><span>if (!fs.existsSync(file)) {<!-- --></span></p> <p><span>name = na;</span></p> <p><span>break;</span></p> <p><span>}</span></p> <p><span>}</span></p> <p><span>}</span></p> <p><span>const upStream = fs.createWriteStream(file);</span></p> <p><span>render.pipe(upStream);</span></p> <p><span>url = _path + name;</span></p> <p><span>} catch (e) {<!-- --></span></p> <p><span>console.log(\"上传失败:\", e);</span></p> <p><span>}</span></p> <p><span>return {<!-- --></span></p> <p><span>result: {<!-- --></span></p> <p><span>url</span></p> <p><span>}</span></p> <p><span>};</span></p> <p><span>} else {<!-- --></span></p> <p><span>return {<!-- --></span></p> <p><span>code: 10000,</span></p> <p><span>message: \"上传的文件(file)不能为空!\",</span></p> <p><span>};</span></p> <p><span>}</span></p> <p><span>};</span></p> <h4><strong><strong><strong>4.2.5产品商城界面</strong></strong></strong></h4> <p>产品商城,管理员点击“产品商城”,可以查看所在在售家具信息,包括标题、封面图、卖价、原价、商品库存、产品分类描述、产品规格、产品厂商等信息,可以查看评论内容。还可以进行查询、重置、添加和删除等操作。如下图所示。</p> <p> <img alt="" height="800" src="https://i-blog.csdnimg.cn/direct/f1b3822698d64fd18522b3a7c4454ec2.png" alt="基于微信小程序的家具销售系统设计与实现 毕业设计源码53107" width="1200" /> </p> <p>图4-10产品商城界面图</p> <h4><strong><strong><strong>4.2.6订单配送界面</strong></strong></strong></h4> <p>订单配送,提供订单配送管理功能,包括配送方式的设置、配送地址的管理等。支持订单的状态管理,如待支付、已支付、已发货、已完成等。如下图所示。</p> <p> <img alt="" height="241" src="https://i-blog.csdnimg.cn/direct/f47ef47ca6fa439b9b41197476fe2970.png" alt="基于微信小程序的家具销售系统设计与实现 毕业设计源码53107" width="585" /> </p> <p>图4-11订单配送界面</p> <p><strong><strong><strong>第</strong></strong><strong><strong>五</strong></strong><strong><strong>章  系统的测试</strong></strong></strong></p> <p>5.1系统测试的目的</p> <p>系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些错误,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。</p> <p>5.2 系统测试用例</p> <p>系统测试包括:用户登录功能测试、产品商城查看功能测试、添加订单配送、密码修改功能测试,如表5-1、5-2、5-3、5-4所示:</p> <p>用户登录功能测试:</p> <p>表5-1 用户登录功能测试表</p> <tbody> <td> <p>用例名称</p> </td> <td> <p>用户登录系统</p> </td> <td> <p>目的</p> </td> <td> <p>测试用户通过正确的用户名和密码可否登录功能</p> </td> <td> <p>前提</p> </td> <td> <p>未登录的情况下</p> </td> <td> <p>测试流程</p> </td> <td> <p>1) 进入登录页面</p> <p>2) 输入正确的用户名和密码</p> </td> <td> <p>预期结果</p> </td> <td> <p>用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入</p> </td> <td> <p>实际结果</p> </td> <td> <p>实际结果与预期结果一致</p> </td> </tbody> <p>产品商城查看功能测试:</p> <p>表5-2 产品商城查看功能测试表</p> <tbody> <td> <p>用例名称</p> </td> <td> <p>产品商城查看</p> </td> <td> <p>目的</p> </td> <td> <p>测试产品商城查看功能</p> </td> <td> <p>前提</p> </td> <td> <p>用户登录</p> </td> <td> <p>测试流程</p> </td> <td> <p>点击产品商城列表</p> </td> <td> <p>预期结果</p> </td> <td> <p>可以查看到所有产品商城</p> </td> <td> <p>实际结果</p> </td> <td> <p>实际结果与预期结果一致</p> </td> </tbody> <p>管理员添加订单配送测试:</p> <p>表5-3 管理员添加订单配送测试表</p> <tbody> <td> <p>用例名称</p> </td> <td> <p>订单配送发布测试用例</p> </td> <td> <p>目的</p> </td> <td> <p>测试订单配送发布功能</p> </td> <td> <p>前提</p> </td> <td> <p>用户正常登录情况下</p> </td> <td> <p>测试流程</p> </td> <td> <p>1)点击订单配送管理,然后点击添加后并填写信息。</p> <p>2)点击进行提交。</p> </td> <td> <p>预期结果</p> </td> <td> <p>提交以后,页面首页会显示新的订单配送</p> </td> <td> <p>实际结果</p> </td> <td> <p>实际结果与预期结果一致</p> </td> </tbody> <p>密码修改功能测试:</p> <p>表5-4密码修改功能测试表</p> <tbody> <td> <p>用例名称</p> </td> <td> <p>密码修改测试用例</p> </td> <td> <p>目的</p> </td> <td> <p>测试管理员密码修改功能</p> </td> <td> <p>前提</p> </td> <td> <p>管理员用户正常登录情况下</p> </td> <td> <p>测试流程</p> </td> <td> <p>1)管理员密码修改并完成填写。</p> <p>2)点击进行提交。</p> </td> <td> <p>预期结果</p> </td> <td> <p>使用新的密码可以登录</p> </td> <td> <p>实际结果</p> </td> <td> <p>实际结果与预期结果一致</p> </td> </tbody> <p>5.3 系统测试结果</p> <p>通过编写家具销售系统的测试用例,已经检测完毕用户登录功能测试、产品商城查看功能测试、添加订单配送、密码修改功能测试,通过这些测试为家具销售系统的后期推广运营提供了强力的技术支撑。</p> <p>                                                                <strong><strong><strong>结  论</strong></strong></strong></p> <p>经过了几个月的努力,本家具销售系统终于完成了,虽然在校期间也开发过一些小型的小程序,但是都是在老师的讲解以及辅助下完成的,没有经历过开发之前的需求分析、系统分析,都是直接从系统设计开始的,因此开发家具销售系统对我意义重大。</p> <p>在开发系统最初,首先对各个家具销售系统方面的需求进行调研,了解对于用户来说,开发的系统需要实现哪些功能才能满足家具销售系统需求,对需求进行分析;其次选择自己比较熟悉的Nodejs语言,MYSQL数据库来设计开发,通过知网库、学校图书馆等地方查阅、学习这些技术,掌握编程的思想和方法,然后就是对系统进行分析,从系统开发的可行性、系统实现的功能、系统应该具备的性能以及系统的操作流程方面,对系统进行全方位的分析,确定系统的最终功能,从而对系统的功能和数据库进行设计,最后就是系统的实现以及对实现的功能的测试,确保系统能够稳定的运行。</p> <p>在开发的过程中暴露出了自己的很多问题,比如前期的准备还是不够充分,不能完全掌握其操作流程;在开发过程中对Nodejs的编程掌握的还不够熟练以及对系统的环境配置上还存在很多问题,经常会导致项目在运行的时候出现错误。学无止境,通过一边查阅资料一边向导师请教,慢慢的解决了这些问题,在以后的学习、工作者我会更加严谨,通过本项目的开发,我将会受益终生!</p> <p>                                                                 <strong><strong><strong>参考文献</strong></strong></strong></p> <p>[1]彭淑勤,熊先青,孙庆伟.家具智能制造ERP/SCM/CRM管理系统集成方法研究[J].制造业自动化,2023,45(12):18-21.</p> <p>[2]赵伟翔,钟世禄,葛思怡.定制家具数据管理系统规划与前端设计[J].家具,2023,44(06):119-124.DOI:10.16610/j.cnki.jiaju.2023.06.025.</p> <p>[3]李淑玲,朱彤.基于Node.js技术的在线测试系统设计方案[J].科技资讯,2023,21(19):35-38.DOI:10.16661/j.cnki.1672-3791.2303-5042-5997.</p> <p>[4]郭伟,苗蕊,裴立波.哈尔滨城市家具系统化设计研究[J/OL].林产工业,1-9[2024-03-07].http://kns.cnki.net/kcms/detail/11.1874.S.20230921.0935.002.html.</p> <p>[5]张悦.体验视角下模块化家具设计研究[J].天工,2023,(22):36-38.</p> <p>[6]李博,孙莉辰,徐贺等.基于超声波测距的定制家具AGV避障系统设计[J].林产工业,2023,60(12):45-49.DOI:10.19531/j.issn1001-5299.202312008.</p> <p>[7]张猛,何姗姗.基于Vue+Node.js的智能小区数据管理系统设计与实现[J].电脑知识与技术,2023,19(14):46-49+53.DOI:10.14004/j.cnki.ckt.2023.0730.</p> <p>[8]赵率宏.基于Node.js的ORM框架研究与实现[D].西南科技大学,2023.DOI:10.27415/d.cnki.gxngc.2023.000804.</p> <p>[9]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.</p> <p>[10]Tyson M .Hands-on with MongoDB queryable encryption and Node.js[J].InfoWorld.com,2022,</p> <p>[11]Heller M .What is Node.js? The JavaScript runtime explained[J].InfoWorld.com,2022,</p> <p>[12]Krill P .Deno 1.26 improves Node.js compatibility, npm support[J].InfoWorld.com,2022,</p> <p>[13]布宇凡.基于Node.js的船舶信息管理系统的设计与实现[D].北京邮电大学,2022.DOI:10.26969/d.cnki.gbydu.2022.000688.</p> <p>[14]杨子恒.基于系统设计原则的书房竹家具设计[D].中南林业科技大学,2022.DOI:10.27662/d.cnki.gznlc.2022.000777.</p> <p>[15]胡颖智.基于AI辅助设计系统的全屋定制家具设计[D].中南林业科技大学,2022.DOI:10.27662/d.cnki.gznlc.2022.000891.</p> <p>[16]陈静仪.基于整体产品理论的适老家具系统构建及实证[D].四川农业大学,2022.DOI:10.27345/d.cnki.gsnyu.2022.000846.</p> <p>[17]以动物为原型的儿童家具系统[J].工业设计,2022,(05):14.</p> <p>[18]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.</p> <p>[19]闵亮,薛格格,张玉欣等.基于Node.JS博客系统的设计与实现[J].电子设计工程,2022,30(07):37-41.DOI:10.14022/j.issn1674-6236.2022.07.008.</p> <p>[20]谢斐.基于增强现实技术的家具布置系统设计[J].电子技术与软件工程,2022,(02):63-66.</p> <p>                                                                    <strong><strong><strong>致  谢</strong></strong></strong></p> <p>家具销售系统的完成,如何实现的更好,其中付出的努力是很大的,这段时光将会终身难忘。</p> <p>家具销售系统的设计可以顺利完成,首先,我要感谢我的指导老师,他在我遇到设计问题时及时帮助了我,并在我对设计感到困惑时给了我充分的指导。在他的帮助下,我可以完成高质量的毕业设计。在家具销售系统的设计和开发中,指导老师提出了许多实用的意见和建议,并为我提供了大量相关的研究资料,使我对设计有了更深入的了解。只有在老师的指导下,才能在毕业设计中取得成功。在此,我要向指导老师表示深深的谢意。</p> <p>在此,我还要感谢我的同学们,他们为我的设计提供了许多参考意见,并与我讨论了设计中的问题,从而使我的设计一步一步走向成熟。  </p> <blockquote> <p>                                     <span> 免费领取源码,请点赞关注私信博主</span></p> </blockquote> <p><a href="http://www.nxccpit.org.cn/" target="_blank">娱乐新闻</a></p> </div> <div class="clear"></div> <div class="article_tags"> <div class="tagcloud"> 网络标签:<a href="http://www.csdndoc.com/tag/jj-16" rel="tag">家具</a> <a href="http://www.csdndoc.com/tag/yh" rel="tag">用户</a> <a href="http://www.csdndoc.com/tag/xt" rel="tag">系统</a> </div> </div> </div> </div> <div> <ul class="post-navigation row"> <div class="post-previous twofifth"> 上一篇 <br> <a href="http://www.csdndoc.com/thread/23438.html" rel="prev">零基础实战:云开发家政维修小程序搭建指南</a> </div> <div class="post-next twofifth"> 下一篇 <br> <a href="http://www.csdndoc.com/thread/23441.html" rel="next">微信小程序二维码扫码功能实现指南_微信小程序扫描二维码</a> </div> </ul> </div> <div class="article_container row box article_related"> <div class="related"> <div class="newrelated"> <h2>相关问题</h2> <ul> <li><a href="http://www.pcgg.com.cn/lol/27599.html">英雄联盟里面怎么样骂人最好</a></li> <li><a href="http://www.pcgg.com.cn/lol/17532.html">lol重新下载还是进不去</a></li> <li><a href="http://www.pcgg.com.cn/ys/40286.html">原神安柏怎么射箭</a></li> <li><a href="http://www.pcgg.com.cn/cj/39254.html">别人过年该吃什么菜</a></li> <li><a href="http://www.pcgg.com.cn/gpqq/8684.html">和平精英怎么单独改头像(和平精英怎样单独改头像)</a></li> <li><a href="http://www.pcgg.com.cn/wzlb/48571.html">武昌火车站到武汉高铁站怎么坐地铁(武昌火车站到武汉高铁站)</a></li> <li><a href="http://www.pcgg.com.cn/lol/33140.html">lol仅限系统匹配到的对局算人机吗</a></li> <li><a href="http://www.pcgg.com.cn/gl/60844.html">艺考生文化课怎么学</a></li> <li><a href="http://www.pcgg.com.cn/zmxy/55065.html">造梦西游灵猴几级进化</a></li> <li><a href="http://www.pcgg.com.cn/gpqq/5661.html">下载和平精英游戏免费最新版</a></li> </ul> </div> </div> </div> <div class="clear"></div> <div id="comments_box"> </div> </div> <div id="sidebar"> <div id="sidebar-follow"> <div class="search box row"> <div class="search_site"> <form id="searchform" method="get" action="http://www.csdndoc.com/index.php"> <button type="submit" value="" id="searchsubmit" class="button"><i class="fasearch">☚</i></button> <label><input type="text" class="search-s" name="s" x-webkit-speech="" placeholder="请输入搜索内容"></label> </form></div></div> <div class="widget_text widget box row widget_custom_html"><h3>公告</h3><div class="textwidget custom-html-widget"><a target="_blank" href="http://www.5d.ink/deepseek/?d=DeepseekR1_local.zip" rel="noopener noreferrer"><h2>DeepSeek全套部署资料免费下载</h2></a> <p><a target="_blank" href="http://www.5d.ink/deepseek/?d=DeepseekR1_local.zip" rel="noopener noreferrer"><img src="http://css.5d.ink/img/deep.png" alt="DeepSeekR1本地部署部署资料免费下载"></a></p><br /><br /> <a target="_blank" href="http://www.5d.ink/freefonts/?d=FreeFontsdown.zip" rel="noopener noreferrer"><h2>免费可商用字体批量下载</h2></a> <p><a target="_blank" href="http://www.5d.ink/freefonts/?d=FreeFontsdown.zip" rel="noopener noreferrer"><img src="http://css.5d.ink/img/freefont.png" alt="免费可商用字体下载"></a></p></div></div> <div class="widget box row"> <div id="tab-title"> <div class="tab"> <ul id="tabnav"> <li class="selected">猜你想看的文章</li> </ul> </div> <div class="clear"></div> </div> <div id="tab-content"> <ul> <li><a href="http://www.pcgg.com.cn/gl/3312.html">原神心海卡池四星角色有哪些</a></li> <li><a href="http://www.pcgg.com.cn/lol/20087.html">英雄联盟版本更新内容在哪看</a></li> <li><a href="http://www.pcgg.com.cn/lol/21045.html">玩lol突然卡几秒</a></li> <li><a href="http://www.pcgg.com.cn/lol/22586.html">玩儿lol显卡怎么设置</a></li> <li><a href="http://www.pcgg.com.cn/gl/4799.html">原神第九关梦登楼怎么过</a></li> <li><a href="http://www.pcgg.com.cn/lol/28184.html">lol20颗宝石多少钱</a></li> <li><a href="http://www.pcgg.com.cn/lol/24180.html">手游lol怎么清空聊天记录</a></li> <li><a href="http://www.pcgg.com.cn/gpqq/10528.html">和平精英设备脸多久自己解除</a></li> <li><a href="http://www.pcgg.com.cn/gl/5366.html">原神四面八方之网任务在哪接</a></li> <li><a href="http://www.pcgg.com.cn/gl/109.html">原神魈大招怎么放?</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="clear"></div> <div id="footer"> <div class="container"> <div class="twothird"> </div> </div> <div class="container"> <div class="twothird"> <div class="copyright"> <p> Copyright © 2012 - 2025 <a href="http://www.csdndoc.com/"><strong>程序员档案馆</strong></a> Powered by <a href="/lists">网站分类目录</a> | <a href="/top100.php" target="_blank">精选推荐文章</a> | <a href="/sitemap.xml" target="_blank">网站地图</a> | <a href="/post/" target="_blank">疑难解答</a> <a href="https://beian.miit.gov.cn/" rel="external">京ICP备05034492号</a> </p> <p>声明:本站内容来自互联网,如信息有错误可发邮件到f_fb#foxmail.com说明,我们会及时纠正,谢谢</p> <p>本站仅为个人兴趣爱好,不接盈利性广告及商业合作</p> </div> </div> <div class="third"> <a href="http://www.xiaoboy.cn" target="_blank">小男孩</a> </div> </div> </div> <!--gototop--> <div id="tbox"> <a id="home" href="http://www.csdndoc.com" title="返回首页"><i class="fa fa-gohome"></i></a> <a id="pinglun" href="#comments_box" title="前往评论"><i class="fa fa-commenting"></i></a> <a id="gotop" href="javascript:void(0)" title="返回顶部"><i class="fa fa-chevron-up"></i></a> </div> <script src="//css.5d.ink/body5.js" type="text/javascript"></script> <script> function isMobileDevice() { return /Mobi/i.test(navigator.userAgent) || /Android/i.test(navigator.userAgent) || /iPhone|iPad|iPod/i.test(navigator.userAgent) || /Windows Phone/i.test(navigator.userAgent); } // 加载对应的 JavaScript 文件 if (isMobileDevice()) { var script = document.createElement('script'); script.src = '//css.5d.ink/js/menu.js'; script.type = 'text/javascript'; document.getElementsByTagName('head')[0].appendChild(script); } </script> <script> $(document).ready(function() { $("#sidebar-follow").pin({ containerSelector: ".main-container", padding: {top:64}, minWidth: 768 }); $(".mainmenu").pin({ containerSelector: ".container", padding: {top:0} }); $(".swipebox").swipebox(); }); </script> </body></html>