博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到🔎百套Python实战项目持续更新中~
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,帮你做好开题答辩❤️文末获取源码联系、提供项目参考文档❤️ ⚠️一定要先收藏⚠️
第4章 系统设计
系统设计必须参考当前社会最主流的页面设计,因为不主流的就是已经被淘汰的,随着软件设计多年发展,已经有了完整的设计理念。
4.1 界面设计原则
针对界面的模块以及操作部分,有些规则是需要提前设定的。
第一点:前后台主界面必须统一。统一的有整个网站的上部以及下部,中间显示关键内容,后台的菜单栏必须在左侧。颜色也要统一,不能有很明显的突兀,产生视觉厌恶的效果。
第二点:导航条必须美化。界面统一后,导航就是一个门户入口,就像大门一样,非常的引人注目,如果导航条不美化,随便弄一个导航条会与界面不匹配,并且有种设计不上档次的感觉。
第三点:输入框必须格式统一,并且相关核心数据要尽量的放到前面,要符合人们的正常认知。比如用户的属性有账号密码或者性别电话或者详细说明等这些,一般设定详细说明的为补充部分,尽量放到最下面,不能说把姓名或者电话放到最下面,这样一方面是页面布局不美观,另一方面就是违反人们的日常生活认知。
第四点:界面设计必须要考虑用户对象,他们可能对计算机的认知也就仅仅处于操作使用阶段,尽量要用贴合人们日常生活和操作的习惯设计到项目里面使用。
4.2 功能结构设计
站在使用者的角度来分析北京古城民宿管理系统的详细功能,最后使用结构图来展示设计结果。
管理员功能结构设计见图4.1。管理员管理商家,管理游记攻略,管理古城推荐,管理网站活动等信息。
图4.1 管理员功能结构图
商家功能结构设计见图4.2。商家需要回复用户咨询房间的信息,需要增删改查房间信息,需要使用房间预定订单等。
图4.2 商家功能结构图
用户功能结构设计见图4.3。用户可以对游记攻略,网站活动,古城推荐进行收藏,发布留言和查询,可以查看商家,可以查看房间,可以预定房间。
图4.3 用户功能结构图
能满足当前项目数据所需要的数据库模式采用的是关系型数据库。首先关系型数据库发展历史悠久,功能完善,性价比也比较高,不管是开发成本还是使用成本都可以接收,不需要重新创建一种新的数据模型。
数据需要提前设计清楚,如何简单明了的表示数据实体与属性之间的关系,目前最优解决方法是采用画E-R图的方式来进行描述,用E-R图的好处有以下几点:
第一点:数据筛选,有时候用文字描述的数据不太直观,当用E-R来描述的时候可以更直观的看到数据之间的关系,有助于清空冗余的数据表达,让数据更清晰;
第二点:可以通过优化的E-R对数据进行优化,能提前对数据量进行预估,提前设定相关规则,避免数据混乱;
第三点:可以提高数据的完整性,当E-R画出的过程也是对文字逻辑的梳理过程,有助于大脑的理解;
第四点:优化好的数据在检索方面可以人为的提高检索效率;
本章主要表达各个数据模型直接有任何关系,通过E-R图可以更清楚的判断,有助于提高数据存储格式等一系列的后续操作的效率,优化开发步骤。
(1)图4.3为房间实体图。
图4.3 房间实体图
(2)图4.4为用户实体图。
图4.4 用户实体图
(3)图4.5为房间预定实体图。
图4.5 房间预定实体图
(4)图4.6为商家实体图。
图4.6 商家实体图
(5)图4.7为上述实体间关系E-R图。
图4.7 实体间关系E-R图
三大范式基本上概括了数据库设计的必要规范,只有符合三大范式的数据才是合理的数据。
范式第一条:表与表之间,字段与字段之间,每个名字都不能产生混淆的概念,必须不一样,必须确保唯一性的存在。
范式第二条:在满足第一条范式的前提上要对主键进行规定,不能这个表的主键在第一列,后面的表的主键位置列数就变了,这样不可以,必须保证统一,让主键在相同列上。
范式第三条:满足前两条范式的同时,如果获取数据,必须可以通过主键就能查询到相关数据,尽量不要跨表获取。
三大范式是继续关系,每一个范式都要继承前面范式的要求,就像盖房子一样,必须先打地基,然后再在上面做其他事情,范式就是这样。通过三大范式要求的数据,不仅能规范数据库的设定,还可以提高数据库检索效率。
下面展示设计的北京古城民宿管理系统的数据表结构。
表4.1 房间表
字段 | 类型 | 说明 | 允许空 |
id (主键) | int(11) | 主键 | 不允许空 |
shangjia_id | int(11) | 商家 | 允许空 |
fangjian_name | varchar(200) | 房间名称 | 允许空 |
fangjian_uuid_number | varchar(200) | 房间编号 | 允许空 |
fangjian_photo | varchar(200) | 房间照片 | 允许空 |
fangjian_address | varchar(200) | 房间位置 | 允许空 |
zan_number | int(11) | 赞 | 允许空 |
cai_number | int(11) | 踩 | 允许空 |
fangjian_types | int(11) | 房型 | 允许空 |
fangjian_kucun_number | int(11) | 剩余房间数 | 允许空 |
fangjian_old_money | decimal(10,2) | 房间原价 | 允许空 |
fangjian_new_money | decimal(10,2) | 现价/间 | 允许空 |
fangjian_clicknum | int(11) | 房间热度 | 允许空 |
fangjian_content | longtext | 房间介绍 | 允许空 |
shangxia_types | int(11) | 是否上架 | 允许空 |
fangjian_delete | int(11) | 逻辑删除 | 允许空 |
insert_time | timestamp | 录入时间 | 允许空 |
create_time | timestamp | 创建时间 | 允许空 |
表4.2 房间咨询表
字段 | 类型 | 说明 | 允许空 |
id (主键) | int(11) | 主键 | 不允许空 |
yonghu_id | int(11) | 提问人 | 允许空 |
shangjia_id | int(11) | 回答人 | 允许空 |
fangjian_chat_issue_text | longtext | 问题 | 允许空 |
issue_time | timestamp | 问题时间 | 允许空 |
fangjian_chat_reply_text | longtext | 回复 | 允许空 |
reply_time | timestamp | 回复时间 | 允许空 |
zhuangtai_types | int(255) | 状态 | 允许空 |
fangjian_chat_types | int(11) | 数据类型 | 允许空 |
insert_time | timestamp | 提问时间 | 允许空 |
create_time | timestamp | 创建时间 | 允许空 |
表4.3 管理员表
字段 | 类型 | 说明 | 允许空 |
id (主键) | bigint(20) | 主键 | 不允许空 |
username | varchar(100) | 用户名 | 不允许空 |
password | varchar(100) | 密码 | 不允许空 |
role | varchar(100) | 角色 | 允许空 |
addtime | timestamp | 新增时间 | 不允许空 |
表4.4 房间点评表
字段 | 类型 | 说明 | 允许空 |
id (主键) | int(11) | 主键 | 不允许空 |
fangjian_id | int(11) | 房间 | 允许空 |
yonghu_id | int(11) | 用户 | 允许空 |
fangjian_commentback_text | longtext | 评价内容 | 允许空 |
insert_time | timestamp | 评价时间 | 允许空 |
reply_text | longtext | 回复内容 | 允许空 |
update_time | timestamp | 回复时间 | 允许空 |
create_time | timestamp | 创建时间 | 允许空 |
表4.5 房间预定表
字段 | 类型 | 说明 | 允许空 |
id (主键) | int(11) | 主键 | 不允许空 |
fangjian_order_uuid_number | varchar(200) | 订单编号 | 允许空 |
fangjian_id | int(11) | 房间 | 允许空 |
yonghu_id | int(11) | 用户 | 允许空 |
buy_number | int(11) | 预约房间数量 | 允许空 |
fangjian_order_time | date | 预约日期 | 允许空 |
fangjian_order_true_price | decimal(10,2) | 实付价格 | 允许空 |
fangjian_order_types | int(11) | 订单类型 | 允许空 |
fangjian_order_payment_types | int(11) | 支付类型 | 允许空 |
insert_time | timestamp | 订单创建时间 | 允许空 |
create_time | timestamp | 创建时间 | 允许空 |
表4.6 游记攻略表
字段 | 类型 | 说明 | 允许空 |
id (主键) | int(11) | 主键 | 不允许空 |
yonghu_id | int(11) | 用户 | 允许空 |
gonglve_name | varchar(200) | 游记攻略标题 | 允许空 |
gonglve_uuid_number | varchar(200) | 游记攻略编号 | 允许空 |
gonglve_photo | varchar(200) | 游记攻略照片 | 允许空 |
gonglve_address | varchar(200) | 游玩位置 | 允许空 |
gonglve_biaoqian | varchar(200) | 标签 | 允许空 |
gonglve_file | varchar(200) | 攻略附件 | 允许空 |
zan_number | int(11) | 赞 | 允许空 |
cai_number | int(11) | 踩 | 允许空 |
gonglve_types | int(11) | 游记攻略类型 | 允许空 |
gonglve_content | longtext | 游记攻略内容 | 允许空 |
insert_time | timestamp | 发布时间 | 允许空 |
create_time | timestamp | 创建时间 | 允许空 |
表4.7 游记攻略点评表
字段 | 类型 | 说明 | 允许空 |
id (主键) | int(11) | 主键 | 不允许空 |
gonglve_id | int(11) | 游记攻略 | 允许空 |
yonghu_id | int(11) | 用户 | 允许空 |
gonglve_liuyan_text | longtext | 留言内容 | 允许空 |
insert_time | timestamp | 留言时间 | 允许空 |
reply_text | longtext | 回复内容 | 允许空 |
update_time | timestamp | 回复时间 | 允许空 |
create_time | timestamp | 创建时间 | 允许空 |
表4.8 古城推荐表
字段 | 类型 | 说明 | 允许空 |
id (主键) | int(11) | 主键 | 不允许空 |
guchengtuijian_name | varchar(200) | 古城标题 | 允许空 |
guchengtuijian_uuid_number | varchar(200) | 古城推荐编号 | 允许空 |
guchengtuijian_photo | varchar(200) | 古城照片 | 允许空 |
guchengtuijian_address | varchar(200) | 古城位置 | 允许空 |
guchengtuijian_file | varchar(200) | 古城资料 | 允许空 |
zan_number | int(11) | 赞 | 允许空 |
cai_number | int(11) | 踩 | 允许空 |
guchengtuijian_types | int(11) | 古城类型 | 允许空 |
guchengtuijian_xingji_types | int(11) | 推荐星级 | 允许空 |
guchengtuijian_content | longtext | 古城介绍 | 允许空 |
shangxia_types | int(11) | 是否上架 | 允许空 |
guchengtuijian_delete | int(11) | 逻辑删除 | 允许空 |
insert_time | timestamp | 上传时间 | 允许空 |
create_time | timestamp | 创建时间 | 允许空 |
表4.9 古城留言表
字段 | 类型 | 说明 | 允许空 |
id (主键) | int(11) | 主键 | 不允许空 |
guchengtuijian_id | int(11) | 古城推荐 | 允许空 |
yonghu_id | int(11) | 用户 | 允许空 |
guchengtuijian_liuyan_text | longtext | 留言内容 | 允许空 |
insert_time | timestamp | 留言时间 | 允许空 |
reply_text | longtext | 回复内容 | 允许空 |
update_time | timestamp | 回复时间 | 允许空 |
create_time | timestamp | 创建时间 | 允许空 |
表4.10 用户表
字段 | 类型 | 说明 | 允许空 |
id (主键) | int(11) | 主键 | 不允许空 |
username | varchar(200) | 账户 | 允许空 |
password | varchar(200) | 密码 | 允许空 |
yonghu_uuid_number | varchar(200) | 用户编号 | 允许空 |
yonghu_name | varchar(200) | 用户姓名 | 允许空 |
yonghu_phone | varchar(200) | 用户手机号 | 允许空 |
yonghu_id_number | varchar(200) | 用户身份证号 | 允许空 |
yonghu_photo | varchar(200) | 用户头像 | 允许空 |
sex_types | int(11) | 性别 | 允许空 |
yonghu_email | varchar(200) | 用户邮箱 | 允许空 |
new_money | decimal(10,2) | 余额 | 允许空 |
jinyong_types | int(11) | 账户状态 | 允许空 |
create_time | timestamp | 创建时间 | 允许空 |
表4.11 网站活动表
字段 | 类型 | 说明 | 允许空 |
id (主键) | int(11) | 主键 | 不允许空 |
huodong_name | varchar(200) | 活动标题 | 允许空 |
huodong_uuid_number | varchar(200) | 网站活动编号 | 允许空 |
huodong_photo | varchar(200) | 活动照片 | 允许空 |
huodong_address | varchar(200) | 活动地点 | 允许空 |
zan_number | int(11) | 赞 | 允许空 |
cai_number | int(11) | 踩 | 允许空 |
huodong_types | int(11) | 活动类型 | 允许空 |
kaishi_time | timestamp | 活动开始时间 | 允许空 |
jieshu_time | timestamp | 活动结束时间 | 允许空 |
huodong_content | longtext | 活动内容 | 允许空 |
shangxia_types | int(11) | 是否上架 | 允许空 |
huodong_delete | int(11) | 逻辑删除 | 允许空 |
insert_time | timestamp | 上传时间 | 允许空 |
create_time | timestamp | 创建时间 | 允许空 |
表4.12 活动留言表
字段 | 类型 | 说明 | 允许空 |
id (主键) | int(11) | 主键 | 不允许空 |
huodong_id | int(11) | 网站活动 | 允许空 |
yonghu_id | int(11) | 用户 | 允许空 |
huodong_liuyan_text | longtext | 留言内容 | 允许空 |
insert_time | timestamp | 留言时间 | 允许空 |
reply_text | longtext | 回复内容 | 允许空 |
update_time | timestamp | 回复时间 | 允许空 |
create_time | timestamp | 创建时间 | 允许空 |
表4.13 商家表
字段 | 类型 | 说明 | 允许空 |
id (主键) | int(11) | 主键 | 不允许空 |
username | varchar(200) | 账户 | 允许空 |
password | varchar(200) | 密码 | 允许空 |
shangjia_name | varchar(200) | 商家名称 | 允许空 |
shangjia_phone | varchar(200) | 联系方式 | 允许空 |
shangjia_email | varchar(200) | 邮箱 | 允许空 |
shangjia_photo | varchar(200) | 营业执照展示 | 允许空 |
shangjia_xingji_types | int(11) | 商家信用类型 | 允许空 |
new_money | decimal(10,2) | 现有余额 | 允许空 |
shangjia_content | longtext | 商家介绍 | 允许空 |
shangjia_delete | int(11) | 逻辑删除 | 允许空 |
jinyong_types | int(11) | 账户状态 | 允许空 |
create_time | timestamp | 创建时间 | 允许空 |
第5章 系统实现
系统实现就是把项目的功能点准确清晰的描述起来。对项目的功能设计和数据库表的设计,只是概念性设计的一个阶段,系统实现则是对所有设计好的功能的具体呈现。当设计变成现实可操作的功能,就需要用文字与图片的形式对应起来,这样可以更直观的感受系统实现的具体操作。
5.1 管理员功能实现
5.1.1 网站活动管理
网站活动管理界面如图5.1所示。
图5.1 网站活动管理界面
网站活动管理包括的基本信息有活动地点,活动开始时间,活动标题等信息。作为管理员,其可以在网站活动管理界面下架网站活动,删除,修改网站活动信息等。
活动留言管理界面如图5.2所示。
图5.2 活动留言管理界面
活动留言管理包括的基本信息有留言内容,用户姓名,活动标题等信息。作为管理员,其可以在活动留言管理界面回复用户对活动信息提交的留言。
古城推荐管理界面如图5.3所示。
图5.3 古城推荐管理界面
古城推荐管理包括的基本信息有古城资料,古城照片,推荐星级等信息。作为管理员,其可以在古城推荐管理界面下架古城推荐信息,删除,修改古城推荐信息。
游记攻略管理界面如图5.4所示。
图5.4 游记攻略管理界面
游记攻略管理包括的信息有游玩位置,攻略附件,标签,游记攻略标题等信息。作为管理员,其需要在游记攻略管理界面新增游记攻略,修改,删除游记攻略信息等。
房间咨询管理界面如图5.5所示。
图5.5 房间咨询管理界面
房间咨询管理包括的基本信息有新消息,状态,发送时间等信息,作为管理员,其可以在房间咨询管理界面回复用户咨询房间的信息。
5.2 商家功能实现
房间管理界面如图5.6所示。
图5.6 房间管理界面
商家在房间管理界面可以修改房间位置,房型,房间热度,房间原价等信息,可以删除房间信息,下架房间。
房间点评管理界面如图5.7所示。
图5.7 房间点评管理界面
商家在房间点评管理界面除了可以查看用户评价房间的信息,还可以点击右侧的“回复”按钮对该评价进行回复。
5.3 用户功能实现
房间信息界面如图5.10所示。
图5.10 房间信息界面
用户在房间信息界面可以预定房间,可以点击“房间咨询”按钮向房间所属商家进行咨询,可以查看房间所属的商家的具体信息等。
源码获取
大家点赞、收藏、关注 ,让更多需要的同学看到
不同开发语言专栏推荐订阅:
👇下方有我的微信名片👇