第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 新闻信息管理页面