在一个管理信息系统中,数据库的地位是非常重要的,是一个系统正常运行的基础。数据库设计一方面需要科学与规范的方法,另一方面也需要丰富的经验指导。现在对数据库设计总结一下,大致可以分为以下几步:
l 首先是收集,分析需求。
l 将需求抽象出一般的实体,关系和它们的属性。
l 将这些实体,关系和属性按照一定的规则转化为二元表结构。
以上各步所对应的分别就是数据库需求分析,概念结构设计和逻辑结构设计,下面仍然首先进行数据库需求分析。
3.1 数据库需求分析
通过上述系统功能分析,针对一般公司,企业对门户网站的需求,总结出如下的需求信息:
l 用户分一般用户和管理员用户。
l 一般用户无需登录就可以浏览网站。
l 以上介绍性内容可以适时修改。
l 有企业新闻或其他相关新闻。
l 新闻中可以插入图片。
l 有企业产品介绍,并在首页突出显示推荐的产品。
l 可以有多种类型的产品。
l 匿名访客可以留言,提出评价或需求。
l 有常见问题解答功能。
l 以上提到的企业信息,新闻,产品,留言和常见问题均可在后台维护。
经过上述系统功能分析和需求总结,考虑到将来功能上的扩展,设计如下的数据项和数据结构:
l 管理员信息,包括数据项:账号,姓名,密码。
l 企业信息,包括数据项:企业信息名称,内容,更新日期等。
l 新闻信息,包括数据项:新闻编号,新闻名称,分类编号等。
l 新闻分类,包括数据项:分类编号,分类名称。
l 产品信息,包括数据项:产品编号,产品名称,分类编号,是否推荐等。
l 产品分类,包括数据项:分类编号,分类名称,上级分类编号(备用)。
l 留言信息,包括数据项:留言编号,访客姓名,留言内容,回复内容等。
l 常见问题,包括数据项,问题ID,问题标题,答案和点击次数。
3.2数据库概念结构设计
得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
本系统根据上面的设计规划出的E-R图如下:
添加新闻功能用到NewsAdd.asp文件,在左侧快捷菜单中单击“添加企业新闻”链接时出现的添加企业新闻页面。从图中可以看到添加新闻与修改企业信息界面很相似,事实上它们所用的都是EditorUBB编辑器。
此页的原理是,每次访问时,都会从Request对象的QueryString集合中寻找以下两个参数:
act:当前操作,当act=”save”时,保存新闻内容;当act等于其他值时,只显示添加新闻页面。
Type:新闻类型编号,此参数不可省略。注意这个参数也是通过URL参数传入的,所以从QueryString集合中检索。
接下来首先根据新闻类型的编辑来获取它的名称,所用的SQL语句如下:
strSQL=”SELECT * FROM NewsType WHERE TypeId=”& nTypeId
上面代码中的nTypeId是由type参数传入的新闻类型编号。然后根据act的值分别来判断是否执行保存操作。保存添新闻用到了INSERT语句,组织SQL语句的过程如下:
strSQL=”INSERT INTO News(Title,Content,PubDate,TypeId)”
strSQl=strSQL&”VALUES(”
strSQl=strSQL&”’”&szTitle&”’”
strSQl=strSQL&”#”&Now()&”#,”
strSQl=strSQL&nTypeId&”(”