为了让系统的编码可以顺利进行,特意对本系统功能进行细分设计,设计的系统功能结构见下图。
图4.1 系统功能结构图
一般来说,对用户进行调查,了解其需求,主要还是完成功能上的分析设计,殊不知,设计功能时,也要展示对数据库的设计。数据库服务于程序,它可以按照设定的规则对程序的数据进行保存,因此,也可以说数据库就是程序相关数据的集合。为了保证程序的高质量,数据库提供的数据存储服务也需要快速响应,同时数据信息也要安全合法可靠,所以设计一个数据库这样的任务也需要高度重视,并花时间和精力去努力完成。毕竟这影响到后期程序的开发和使用。试想而知,假设设计一个不好的数据库,遇到的问题将会有:第一,面对信息处理,会有着繁琐的业务逻辑,延长事务处理时间。第二:程序编码期间,将会产生更多的代码去完成数据处理的功能,产生大量的数据冗余,而且也不方便注释代码,还会占用更多的存储空间。综上所述,设计出合理的数据库是多么的重要。
作为程序后台的支持,本数据库也需要设计数据存储的结构。而数据存储结构的设计就包括了数据表结构的设计和创建。数据表结构包括了字段,数据类型,还有字段的取值范围等信息。而E-R模型中的实体就是一张表,实体的特征就可以作为该表中的字段,根据本程序信息存储要求,设计每个字段需要的类型,还有该字段的取值范围等。系统的各实体信息的实体属性图,以及总体E-R图如下所示。
图4.2 电影实体属性图
图4.3 电影收藏实体属性图
图4.4 电影评价实体属性图
图4.5 字典实体属性图
图4.6 论坛实体属性图
图4.7 海报实体属性图
图4.8 公告实体属性图
图4.9 用户实体属性图
图4.10 预告实体属性图
图4.11 管理员实体属性图
图4.12 系统总体E-R图
每当设计完成一张数据表,就需要及时保存在数据库里面,并对该设计的数据表准确命名,要求设置的数据表的名称尽量不要是中文,而且要方便记忆。因为在程序编码阶段,通过SQL语句可以把程序里面的数据写入在各个数据表里面,而这个环节需要使用到数据表的名称。如果数据表名称是中文的话,可能会乱码并影响程序运行。下面就以表格形式展示设计的结果。
表4.1电影表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | id | Int | 编号 | 否 |
2 | dianying_uuid_number | String | 电影编号 | 是 |
3 | dianying_name | String | 电影名称 | 是 |
4 | dianying_types | Integer | 电影类型 | 是 |
5 | dianying_photo | String | 封面 | 是 |
6 | dianying_video | String | 视频 | 是 |
7 | dianying_danyan | String | 导演 | 是 |
8 | dianying_bianju | String | 编剧 | 是 |
9 | dianying_address | String | 制片国家/地区 | 是 |
10 | dianying_yuyan | String | 语言 | 是 |
11 | dianying_shijian | String | 上映日期 | 是 |
12 | dianying_pianchang | String | 片长 | 是 |
13 | dianying_content | String | 简介 | 是 |
14 | create_time | Date | 创建时间 | 是 |
表4.2电影收藏表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | id | Int | 编号 | 否 |
2 | dianying_id | Integer | 电影 | 是 |
3 | yonghu_id | Integer | 用户 | 是 |
4 | pingfen_number | Integer | 评分 | 是 |
5 | dianying_collection_types | Integer | 类型 | 是 |
6 | insert_time | Date | 收藏时间 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.3电影评价表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | id | Int | 编号 | 否 |
2 | dianying_id | Integer | 电影 | 是 |
3 | yonghu_id | Integer | 用户 | 是 |
4 | dianying_liuyan_text | String | 评价内容 | 是 |
5 | reply_text | String | 回复内容 | 是 |
6 | insert_time | Date | 评价时间 | 是 |
7 | update_time | Date | 回复时间 | 是 |
8 | create_time | Date | 创建时间 | 是 |
表4.4字典表表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | id | Int | 编号 | 否 |
2 | dic_code | String | 字段 | 是 |
3 | dic_name | String | 字段名 | 是 |
4 | code_index | Integer | 编码 | 是 |
5 | index_name | String | 编码名字 | 是 |
6 | super_id | Integer | 父字段编号 | 是 |
7 | beizhu | String | 备注 | 是 |
8 | create_time | Date | 创建时间 | 是 |
表4.5论坛表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | id | Int | 编号 | 否 |
2 | forum_name | String | 帖子标题 | 是 |
3 | yonghu_id | Integer | 用户 | 是 |
4 | users_id | Integer | 管理员 | 是 |
5 | forum_content | String | 发布内容 | 是 |
6 | super_ids | Integer | 父编号 | 是 |
7 | forum_state_types | Integer | 帖子状态 | 是 |
8 | insert_time | Date | 发帖时间 | 是 |
9 | update_time | Date | 修改时间 | 是 |
10 | create_time | Date | 创建时间 | 是 |
表4.6海报表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | id | Int | 编号 | 否 |
2 | yugaopian_id | Integer | 推荐电影 | 是 |
3 | haibao_photo | String | 海报封面 | 是 |
4 | haibao_name | String | 推荐细节 | 是 |
5 | create_time | Date | 创建时间 | 是 |
表4.7公告信息表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | id | Int | 编号 | 否 |
2 | news_name | String | 公告信息标题 | 是 |
3 | news_types | Integer | 公告信息类型 | 是 |
4 | news_photo | String | 公告信息图片 | 是 |
5 | insert_time | Date | 公告信息时间 | 是 |
6 | news_content | String | 公告信息详情 | 是 |
7 | news_delete | Integer | 假删 | 是 |
8 | create_time | Date | 创建时间 | 是 |
表4.8用户表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | id | Int | 编号 | 否 |
2 | yonghu_name | String | 用户姓名 | 是 |
3 | yonghu_photo | String | 头像 | 是 |
4 | yonghu_phone | String | 用户手机号 | 是 |
5 | yonghu_id_number | String | 用户身份证号 | 是 |
6 | yonghu_email | String | 邮箱 | 是 |
7 | yonghu_delete | Integer | 假删 | 是 |
8 | create_time | Date | 创建时间 | 是 |
表4.9预告表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | id | Int | 编号 | 否 |
2 | yugaopian_uuid_number | String | 预告片编号 | 是 |
3 | yugaopian_name | String | 电影名称 | 是 |
4 | yugaopian_types | Integer | 电影类型 | 是 |
5 | yugaopian_photo | String | 封面 | 是 |
6 | yugaopian_video | String | 视频 | 是 |
7 | yugaopian_danyan | String | 导演 | 是 |
8 | yugaopian_bianju | String | 编剧 | 是 |
9 | yugaopian_address | String | 制片国家/地区 | 是 |
10 | yugaopian_yuyan | String | 语言 | 是 |
11 | yugaopian_shijian | String | 上映日期 | 是 |
12 | yugaopian_pianchang | String | 片长 | 是 |
13 | yugaopian_content | String | 简介 | 是 |
14 | create_time | Date | 创建时间 | 是 |
表4.10管理员表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | id | Int | 编号 | 否 |
2 | username | String | 用户名 | 是 |
3 | password | String | 密码 | 是 |
4 | role | String | 角色 | 是 |
5 | addtime | Date | 新增时间 | 是 |
这个环节需要使用前面的设计方案,包括对系统模块的设计,还有对程序后台的数据支持的数据库的设计等。不过这部分内容还是强调系统编码人员的开发能力,要把前面设计的内容通过编码的形式以一个完整的,可以运行的系统呈现出来。
功能模块的实现
如图5.1显示的就是用户信息管理页面,此页面提供给管理员的功能有:用户信息的查询管理,可以删除用户信息、修改用户信息、新增用户信息,
还进行了对用户名称的模糊查询的条件
图5.1 用户信息管理页面
如图5.2显示的就是电影信息管理页面,此页面提供给管理员的功能有:查看已发布的电影信息数据,修改电影信息,电影信息作废,即可删除,还进行了对电影信息名称的模糊查询 电影信息信息的类型查询等等一些条件。
图5.2 电影信息管理页面
如图5.3显示的就是电影类型管理页面,此页面提供给管理员的功能有:根据电影类型进行条件查询,还可以对电影类型进行新增、修改、查询操作等等。
图5.3 电影类型管理页面
如图5.4显示的就是公告信息管理页面,此页面提供给管理员的功能有:根据公告信息进行新增、修改、查询操作等等。
图5.4 公告信息管理页面