《SQL Server 2005 数据库原理及应用》
作业
——企业信息门户(EIP)设计报告
企业信息门户(EIP)
EIP是Enterprise Information Portal的英文缩写,即企业信息门户。EIP是一个基于Web的系统,它能向分布于各处的用户提供商业信息,帮助用户管理、组织和查询与企业和部门相关的信息。内部和外部用户只需要使用浏览器就可以得到自己需要的数据、分析报表及企业决策信息。根据使用者的不同,EIP可以被看作不同的平台。在企业内部,EIP是管理和查询日常业务的公用平台,员工可以访问企业的客户信息、销售信息、生产信息、库存信息和财务信息,以最低的成本共享和利用企业的所有信息;在企业外部,EIP则是企业网站:通过企业门户及时向客户和合作伙伴提供产品和服务的信息。
1 系统设计
1.1总体设计
企业信息门户分为后台管理部分和前台显示部分。后台管理部分包括信息管理模块、用户管理模块、客户管理模块、论坛管理模块;前台显示部分包括消息浏览模块和用户登录模块。
(1)信息管理模块的主要功能包括:
管理信息。添加信息。修改信息。删除信息。查看信息。
(2)用户管理模块的主要功能包括:
管理用户。、添加用户。修改用户。删除用户。查看用户。添加用户权限。修改用户权限。删除用户权限。
(3)客户管理模块的主要功能包括:
管理客户。添加客户。修改客户。删除客户。查看客户。
(4)论坛管理模块的主要功能包括:
管理论坛留言。添加论坛留言。
修改论坛留言。删除论坛留言。查看论坛留言。添加论坛回复。删除论坛回复。查看论坛回复。
(5)显示模块的主要功能包括:
新闻浏览。
产品信息浏览。
用户登录。
1.2功能模块划分
企业信息门户的总体功能模块如图1-1所示,途中可以很清晰地看出系统的功能,以及功能模块之间的关系。
企业信息门户(EIP)系统
EIP显示模块EIP显示模块
信息浏览
用
户
登
录
信
息
管
理
用
户
管
理
客
户
管
理
论
坛
管
理
邮
件
服
务
入
口图1-1 EIP系统总体功能模块示意图
为了更清晰地表现EIP的细节,给出系统流程图。前台用户使用流程图如图1-2所示,教师信息查询流程图如图1-3所示,学生信息查询流程图如图1-4所示。
用户登录
登录验证
通过
浏览信息
企业论坛浏览
企业新闻浏览产品信息浏览
发表新留言回复留言
结束
未通过
出错提示
前台用户使用流程图如图1-2所示
用户登录
登录验证
通过
权限验证
管理产品信息
(增、删、改)
管理新闻信息
(增、删、改)
登录企业邮箱
结束
未通过
出错提示
后台用户使用流程图如图1-3所示
管理论坛信息
(增、删、改)
用户登录
登录验证
通过
权限验证
用户管理
(增、删、改)
客户信息管理
(增、删、改)
结束
未通过
出错提示
管理员的管理流程图如图1-4所示
用户权限设置
(增、删)
2 数据库设计
数据库设计是整个EIP 系统开发过程中的一个重要环节,它具体可以分为两部分:一是概念设计;二是物理模型设计,即数据库表/字段的设计。系统的E-R 图如图1-5所示。
News
新闻标题
发布时间
新闻内容
n
阅读时间
1
ACL
ACLID
ModName
Product
产品类型
产品名称出厂日期
产品编号
新产品与否
产品价格
User
邮箱地址
用户所属部
门手机号码
用户帐号用户状态
在线与否
UserToNews
n
1
UserToACL
新闻编号
BBS
留言内容
阅读次数
留言时间
n
留言标题
BBS 留言编
号
UserToBBS
1
Reply
回复内容
回复作者编
号
回复时间
留言回复编
号
BBSToReply
客户编号
Customer
客户行业类
型
邮政编码
客户联系地
址
客户类型
客户所属企业部门
其他信息备
注
n
UserToNewsCustomer
1
登录密码
用户等级
用户注册姓
名
EIP 系统E-R 如图1-5所示
2.1创建表
本系统数据库中的表有用户权限表ALC、企业论坛留言表BBS、客户表Customer、新闻信息表News、产品信息表Product、企业论坛留言回复表Reply、用户信息表User (1)用户权限表ALC。表ALC用来保存用户权限信息,包括ID用户权限ID和权限名称,结构如表6-1所示。
表6-1 表ACL的结构
编号字段名称数据类型说明
1 UserID Varchar(100) 用户编号(主键)
2 ACLID Varchar 权限编号(主键)
3 ModName Varchar 权限名称
(2)企业论坛留言表BBS,表BBS用来存储用户在企业论坛的留言信息,包括留言编号、留言作者、留言主题、留言时间和阅读次数,结构如表6-2所示。
表6-2 表BBS
编号字段名称数据类型说明
1 BBSID int BBS留言编号(主键)
2 AuthorID Varchar(100)学生姓名
3 Title Varchar(100)学生性别
4 Content text 学生民族
5 AddinTime Datetime 学生出生日期
6 ReadCount int 学生入学时间
(3)新闻信息表News。新闻信息表News用来存储企业中发布的相关新闻。包括新闻编号、作者编号、新闻内容、发布时间和阅读次数结构如表6-3所示。
表6-3 表class的结构
编号字段名称数据类型说明
1 NewsID Int 新闻编号,(主键)
2 AuthorID Varchar(100)作者编号
3 NewsTitle Varchar(100)新闻标题
4 Content text 新闻内容
5 AddinTime Datetime 发布时间
6 ReadCount int 阅读次数
(4)客户表Customer。客户表Customer用来存储企业中客户的相关信息,是每一个企业的核心信息。包括用户编号、联系人编号、所属部门名称、客户行业类型和联系地址等,结构如表6-4所示。
表6-4 表Customer的结构
编号字段名称数据类型说明
1 CustomerID Varchar(100) 客户编号,(主键)
2 ContactID Varchar(100) 企业联系人编号
3 DepartName Varchar(100) 客户所属企业部门
4 CustType Varchar(100) 客户类型
5 BussType Varchar(100) 客户行业类型
6 Address Varchar(100) 客户联系地址
7 Postalcode Varchar(100) 邮政编码
8 Remark text 其他信息备注
(5)产品信息表Product。产品信息表Product用来存储企业已有和最新研制的产品的相关信息。包括产品编号、产品类型、出厂时间、产品名称和产品价格等,结构如图6-5所示
表6-5 表Product的结构
编号字段名称数据类型说明
1 ProductID Varchar(100) 产品编号,主键
2 ProductType Varchar(100) 产品类型
3 OutofFacTime datetime 出厂日期
4 ProductName Varchar(100) 产品名称
5 Price money 产品价格
6 isNew int 新产品与否
(6)企业论坛留言回复表Reply。企业论坛留言回复表Reply用来存储企业论坛中对与留言的回复信息。结构如表6-6所示。
表6-6 表Reply的结构
编号字段名称数据类型说明
1 ReplyID Int 课程号,主键
2 ParentID Int 课程名
3 Content text 课程学时
4 AddinTime datetime 课程学分
5 AuthorID Varchar(100) 课程类型
(7)用户信息表User。用户信息表User用来存储EIP系统使用者(包括企业员工和运许进入系统的相关客户)的相关信息。结构如表6-7所示。
表6-7 表User的结构
编号字段名称数据类型说明
1 UserID Varchar(100) 用户账号(主键)
2 Password Varchar(100) 登录密码
3 Name Varchar(100) 用户注册姓名
4 Email Varchar(100) 邮箱地址
5 Cell Varchar(100) 手机号码
6 Depart Varchar(100) 用户所属部门
7 Rank Varchar(100) 用户等级
8 Isonline int 在线与否
9 State int 用户状态
2.2数据可脚本
创建的数据库名为TMS,数据库表的创建代码如下:
(1)创建表User。
[UserID] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Password] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Name] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Email] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Cell] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Depart] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Rank] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Isonline] [int] NULL ,
[state] [int] NULL
(2)创建表ALU.
GO
CREATE TABLE [dbo].[ACL] (
[UserID] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ACLID] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ModName] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL
ON [PRIMARY]
(3)创建表BBS。
CREATE TABLE [dbo].[BBS] (
[BBSID] [int] NOT NULL ,
[AuthorID] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Title] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Content] [text] COLLATE Chinese_PRC_CI_AS NULL ,
[AddinTime] [datetime] NULL ,
[ReadCount] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
(4)创建表Customer。
CREATE TABLE [dbo].[Customer] (
[CustomerID] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL , [ContactID] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[DepartName] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[CustType] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[BussType] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Address] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Postalcode] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Remark] [text] COLLATE Chinese_PRC_CI_AS NULL
ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
(5)创建表News.
CREATE TABLE [dbo].[News] (
[NewsID] [int] NOT NULL ,
[AuthorID] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[NewsTitle] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Content] [text] COLLATE Chinese_PRC_CI_AS NULL ,
[AddinTime] [datetime] NULL ,
[ReadCount] [int] NULL
ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
(6))创建表Product。
CREATE TABLE [dbo].[Product] (
[ProductID] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ProductType] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[OutofFacTime] [datetime] NULL ,
[ProdcutName] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Price] [money] NULL ,
[isNew] [int] NULL
ON [PRIMARY]
(7))创建表Reply。
CREATE TABLE [dbo].[Reply] (
[ReplyID] [int] NOT NULL ,
[ParentID] [int] NOT NULL ,
[Content] [text] COLLATE Chinese_PRC_CI_AS NULL ,
[AddinTime] [datetime] NULL ,
[AuthorID] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
2.3 关系视图如下:
3 系统框架设计
此工程可以分为3个部分,包括创建工程、设计EIP系统登录界面和设计系统主界面。
3.1 设计数据访问层
本系统使用的数据库访问层主要是DataAccess.cs文件,封装了数据库常用的操作方法。DataAccess.cs类的方法和属性及其作用描述如表1-8所示。
表1-8 DataAccess.类的方法描述
方法名称描述
Public OleDbConnection GetConn() 连接数据库,返回连接字符串
Public OleDbDataReader GetDataReader(String strSql)
查询数据库,返回查询的数据记录
Public DataTable CreateDatatable(string strSql) 查询数据库,返回查询的数据库Public bool ExecSql(string strSql) 执行SQL语句,返回执行情况,
正常返回true,异常返回false https://www.wendangku.net/doc/4116884998.html,应用中很多页面都需要使用数据库连接的语句,所以采用对数据库配置进行统一管理的方法,将程序中用的的所有连接字符串信息统一放于
Web.config配置文档中,这样别的文档就可以直接使用其数据库连接,方便系统移
植时对系统数据库进行统一配置和修改。
在Web.config文件中添加代码如下:
………………
注:根据具体情况设置参数。
3.2 设计登录界面
用户登录功能由页面index.aspx实现,设计如图1-15所示:
(2)页面index.aspx的HTML设计代码如下:
(3)页面事件实现。程序代码如下:
Width="137px" Text="浏览产品信息" ForeColor="#663366">
4 功能模块设计
本EIP系统中,信息包括两种类型:企业新闻和产品发布信息。因此根据上述需求,对信息发布模块,又分为两个子模块:新闻发布子模块和产品信息发布子模块。
产品信息发布子模块主要由我设计。
产品信息发布子模块中包含4和页面,即页面ProductManaging.aspx、页面AddProduct.aspx、页面UpdateProduct.aspx 和页面Prodcut-View.aspx。
4.1 设计新产品发布页面
产品的添加功能由页面AddProduct.aspx来实现。设计界面如下图1-6所示
图1-6
(2)页面AddProduct.aspx的HTML设计代码如下:
<%@ Page language="c#" Codebehind="AddProduct.aspx.cs" AutoEventWireup="false" Inherits="https://www.wendangku.net/doc/4116884998.html,.Product.AddProduct" %>