SpringBoot 构建在线家具商城:系统设计与技术实现

第4章 系统设计

市面上设计比较好的系统都有一个共同特征,就是主题鲜明突出。通过对页面简洁清晰的布局,让页面的内容,包括文字语言,或者视频图片等元素可以清晰表达出系统的主题。让来访用户无需花费过多精力和时间找寻需要的内容。

4.1界面设计原则

一般来说,大部分用户使用系统,有些是想从系统中获取需要的信息,有些则是使用系统提供的服务。所以,为了改善用户体验,提高系统的使用率,在对系统界面设计时,需要按照下面的原则进行。

第一点,对用户进行分析,了解用户使用系统的目的,以及使用系统的方式,考虑大部分用户的阅读习惯,设计Z字形或F型结构可以方便用户获取信息。

第二点:设计有效的导航,这个包括每个页面上都有导航条的显示,有时也可以在页面的底部设计导航条,当用户进入具体页面时,要设计相应的位置提示,在页面中比较特殊的位置,需要设计返回链接,可以返回上个页面,也可以返回首页等。

第三点:对整个系统要运用统一的设计方案,包括色彩方案的一致性,页面模板的相似性等,对相同操作和专业术语的描述在整个系统中也应该保持一致。

第四点:设计的界面要保证传达的内容清晰准确。要避免在同一个页面设计非常多的内容,另外可以准确对系统内容进行分类,把页面中用户视觉集中的位置,用来显示重要信息。

作为初学者,并没有那么多的设计经验,但是可以运用上面提到的界面设计原则设计出比较好的系统,可以让用户产生良好的使用体验。

4.2功能结构设计

为了让系统的编码可以顺利进行,特意对本系统功能进行细分设计,设计的系统功能结构见下图。

图4.1 系统功能结构图

4.3 数据库设计

开发一个系统也需要提前设计数据库。这里的数据库是相关数据的集合,存储在一起的这些数据也是按照一定的组织方式进行的。目前,数据库能够服务于多种应用程序,则是源于它存储方式最佳,具备数据冗余率低的优势。虽然数据库为程序提供信息存储服务,但它与程序之间也可以保持较高的独立性。总而言之,数据库经历了很长一段时间的发展,从最初的不为人知,到现在的人尽皆知,其相关技术也越发成熟,同时也拥有着坚实的理论基础。

4.3.1 数据库概念设计

这部分内容需要借助数据库关系图来完成,也需要使用专门绘制数据库关系图的工具,比如Visio工具就可以设计E-R图(数据库关系图)。设计数据库,也需要按照设计的流程进行,首先还是要根据需求完成实体的确定,分析实体具有的特征,还有对实体间的关联关系进行确定。最后才是使用E-R模型的表示方法,绘制本系统的E-R图。不管是使用亿图软件,还是Visio工具,对于E-R模型的表示符号都一样,通常矩形代表实体,实体间存在的关系用菱形符号表示,实体的属性也就是实体的特征用符号椭圆表示。最后使用直线将矩形,菱形和椭圆等符号连接起来。接下来就开始对本系统的E-R图进行绘制。

(1)下图是用户实体和其具备的属性。

图4.1 用户实体属性图

(2)下图是商品信息实体和其具备的属性。

图4.2 商品信息实体属性图

(3)下图是字典表实体和其具备的属性。

图4.3 字典表实体属性图

(4)下图是购物车实体和其具备的属性。

图4.4 购物车实体属性图

(5)下图是商品评价实体和其具备的属性。

图4.5 商品评价实体属性图

(6)下图是商品订单实体和其具备的属性。

图4.6 商品订单实体属性图

(7)下图是用户表实体和其具备的属性。

图4.7 用户表实体属性图

(8)下图是收货地址实体和其具备的属性。

图4.8 收货地址实体属性图

(9)下图是新闻信息实体和其具备的属性。

图4.9 新闻信息实体属性图

4.3.2 数据库物理设计

作为程序后台的支持,本数据库也需要设计数据存储的结构。而数据存储结构的设计就包括了数据表结构的设计和创建。数据表结构包括了字段,数据类型,还有字段的取值范围等信息。而E-R模型中的实体就是一张表,实体的特征就可以作为该表中的字段,根据本程序信息存储要求,设计每个字段需要的类型,还有该字段的取值范围等。每当设计完成一张数据表,就需要及时保存在数据库里面,并对该设计的数据表准确命名,要求设置的数据表的名称尽量不要是中文,而且要方便记忆。因为在程序编码阶段,通过SQL语句可以把程序里面的数据写入在各个数据表里面,而这个环节需要使用到数据表的名称。如果数据表名称是中文的话,可能会乱码并影响程序运行。下面就以表格形式展示设计的结果。

表4.1收货地址表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 yonghu_id Integer 创建用户 是

3 address_name String 收货人 是

4 address_phone String 电话 是

5 address_dizhi String 地址 是

6 isdefault_types Integer 是否默认地址 是

7 insert_time Date 添加时间 是

8 update_time Date 修改时间 是

9 create_time Date 创建时间 是

表4.2购物车表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 yonghu_id Integer 所属用户 是

3 goods_id Integer 商品 是

4 buy_number Integer 购买数量 是

5 create_time Date 添加时间 是

6 update_time Date 更新时间 是

7 insert_time Date 创建时间 是

表4.3字典表表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 dic_code String 字段 是

3 dic_name String 字段名 是

4 code_index Integer 编码 是

5 index_name String 编码名字 是

6 super_id Integer 父字段id 是

7 beizhu String 备注 是

8 create_time Date 创建时间 是

表4.4商品信息表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 goods_name String 商品名称 是

3 goods_types Integer 商品类型 是

4 goods_photo String 商品照片 是

5 goods_kucun_number Integer 商品库存 是

6 goods_old_money BigDecimal 商品原价 是

7 goods_new_money BigDecimal 现价 是

8 goods_clicknum Integer 点击次数 是

9 shangxia_types Integer 是否上架 是

10 goods_delete Integer 逻辑删除 是

11 goods_content String 商品简介 是

12 create_time Date 创建时间 是

表4.5商品评价表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 goods_id Integer 商品 是

3 yonghu_id Integer 用户 是

4 goods_commentback_text String 评价内容 是

5 reply_text String 回复内容 是

6 insert_time Date 评价时间 是

7 update_time Date 回复时间 是

8 create_time Date 创建时间 是

表4.6商品订单表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 goods_order_uuid_number String 订单号 是

3 address_id Integer 收获地址 是

4 goods_id Integer 商品 是

5 yonghu_id Integer 用户 是

6 buy_number Integer 购买的数量 是

7 goods_order_true_price BigDecimal 实付价格 是

8 goods_order_types Integer 订单类型 是

9 goods_order_payment_types Integer 支付类型 是

10 insert_time Date 订单创建时间 是

11 create_time Date 创建时间 是

表4.7新闻信息表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 news_name String 新闻名称 是

3 news_photo String 新闻图片 是

4 news_types Integer 新闻类型 是

5 insert_time Date 新闻发布时间 是

6 news_content String 新闻详情 是

7 create_time Date 创建时间 是

表4.8用户表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 yonghu_name String 用户姓名 是

3 yonghu_photo String 头像 是

4 yonghu_phone String 用户手机号 是

5 yonghu_id_number String 用户身份证号 是

6 new_money BigDecimal 余额 是

7 yonghu_delete Integer 假删 是

8 create_time Date 创建时间 是

表4.9用户表表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 username String 用户名 是

3 password String 密码 是

4 role String 角色 是

5 addtime Date 新增时间 是

第5章 系统实现

这个环节需要使用前面的设计方案,包括对系统模块的设计,还有对程序后台的数据支持的数据库的设计等。不过这部分内容还是强调系统编码人员的开发能力,要把前面设计的内容通过编码的形式以一个完整的,可以运行的系统呈现出来。

功能模块的实现

5.1用户信息管理

如图5.1显示的就是用户信息管理页面,此页面提供给管理员的功能有:用户信息的查询管理,可以删除用户信息、修改用户信息、新增用户信息,

还进行了对用户名称的模糊查询的条件

图5.1 用户信息管理页面

5.2 商品信息管理

如图5.2显示的就是商品信息管理页面,此页面提供给管理员的功能有:查看已发布的商品信息数据,修改商品信息,商品信息作废,即可删除,还进行了对商品信息名称的模糊查询 商品信息信息的类型查询等等一些条件。

图5.2 商品信息管理页面

5.3商品评论管理

如图5.3显示的就是商品评论管理页面,此页面提供给管理员的功能有:根据商品评论进行条件查询,还可以对商品评论进行新增、修改、查询操作等等。

图5.3 商品评论管理页面

5.1新闻信息管理

如图5.4显示的就是新闻信息管理页面,此页面提供给管理员的功能有:根据新闻信息进行新增、修改、查询操作等等。

图5.4 新闻信息管理页面

相关推荐
Moshow郑锴2 分钟前
neo4j如何存储关于liquidity structure的层次和关联结构
数据库·区块链·neo4j
次次皮10 分钟前
【方案三】JAVA中使用ocr(Umi-OCR)
java·ocr
九转成圣14 分钟前
详解日志格式配置:XML 与 Spring Boot 配置文件格式
xml·spring boot·后端
疯一样的码农16 分钟前
如何使用Apache HttpClient发送带有HTML表单数据的POST请求
java·apache·httpclient
Allen Bright17 分钟前
使用 Apache Commons IO 实现文件读写
java·开发语言·apache
武子康21 分钟前
Java-16 深入浅出 MyBatis - SqlSession Executor StatementHandler 源码分析
java·开发语言·mysql·mybatis·springboot
leo_厉锵23 分钟前
数据库DCL与DQL
数据库·sql·oracle
{⌐■_■}25 分钟前
【docker】docker build上下文
java·docker·容器
程序猿小柒38 分钟前
leetcode hot100【Leetcode 72.编辑距离】java实现
java·算法·leetcode
Yuan_o_40 分钟前
SpringBoot 统一功能处理
java·spring boot·后端