Download presentation
Presentation is loading. Please wait.
1
讲课人:王璞 浙江工商职业技术学院
2
对于不需要生成静态或伪静态化的新闻,其功能模块抽象起来比较简单,在新闻使用之前,管理员可以在后台添加新闻分类,用于分类新闻。在添加新闻分类完毕后,就可以添加新闻并选择相应的分类进行新闻分类,分类后的新闻将能够呈现在不同的页面中以显示不同的分类的新闻。从一定的意义上来说,新闻模块的功能对于管理员而言,就只是添加分类和发布新闻,如图所示。 如图所示,管理员能够在后台进行新闻模块中的分类选择和信息填写进行新闻发布,管理员还可以对新闻分类进行管理。但是在管理员进行操作前,首先需要对管理员进行身份验证,以判断管理员是否有合法的权限进行身份验证。
3
板块功能描述 身份验证可以使用登录模块进行身份验证,但是这里的登录模块没有网站的登录控件复杂。这里只 需要实现对管理员进行判断,如果判断是管理员则能够通过,如果不是管理员则不允许通过的功能即可。 从上述模块功能描述中可以规划成以下几个页面: 登录页面:管理员登录页面,为管理员提供身份验证。 新闻分类添加页面:为管理员提供新闻添加功能。 新闻分类管理页面:为管理员提供新闻分类的添加和管理。 新闻页面:用于显示新闻。 首页调用:用于进行新闻列表的显示,方便用户进行新闻查阅。
4
模块流程分析 一个大型的门户网站每天会有多少的访问量,如果每次的用户访问都需要从数据库中读取数据,那么一天下来可能有几百万的读取次数,这样无疑会对 Web 应用带来极大的挑战! 可以观察各种门户的新闻,可以看得出来这些门户的新闻的 URL 地址的后缀都是.html 或者是.shtml 的,那么是不是这些网站的开发人员和采编人员当有一条新闻时就手动进行页面编写呢? 新闻网站可以将一些新闻静态化,这样就能够保证服务器只需要承受较少的压力依旧可以承担百万级的访问量。生成静态就是将数据库中的数据或相应的字段进行静态化。.html 是静态页面,当用户访问.html 页面时无需进行数据操作和逻辑操作,对于服务 器而言只需要将.html 文本发送到浏览器就能够显示页面的内容。这样无疑增加了访问速度。如果网站要生成静态,其基本模块流程如图所示。
5
模块流程分析 虽然静态化是一个解决方案,但是很多情况下也可以不使用静态化。如果系统不使用静态化,可以使用非静态化的解决方案,如图所示。 相比之下,非静态化的解决方案在实现上来说更加容易,因为静态化的实现方案还需要解析模板。 在新闻模块的编写中,可以事先考虑是选择静态化的解决方案还是选择非静态化的解决方案,静态化的解决方案和非静态化的解决方案在开发过程中虽然可以替换,但是也有一定的开发风险。
6
数据库设计 在新闻模块设计中,需要多个表进行新闻描述,同时为了保证管理用户的安全性,还需要设计管理员表,这些表包括 news、newsclass 和 admin 三个表,这三个表分别存储新闻、新闻分类和管理员信息。 在创建表之前,首先需要创建数据库 news,创建完成后就能够创建相应的表。在对新闻模块进行流程分析之后,就能够大概的设计出这三个表中所需要的字段,其中 news 表所包含的字段如下所示。 新闻编号:用于标识新闻,为自动增长的主键。 新闻标题:用于表示新闻的标题。 发布时间:用于表示新闻发布的事件。 新闻作者:用于表示新闻的作者。 新闻内容:用于表示新闻的内容。 发布天气:用于表示新闻发布的天气。 新闻等级:用于表示新闻的等级。 阅读次数:用于表示新闻的阅读次数。 新闻分类:用于表示新闻的分类,为整型字段。 对于新闻分类表而言,可以使用少数字段进行新闻分类的描述,新闻分类表的字段如下所示。 分类编号:用于标识新闻的分类,为自动增长的主键。 分类名称:用于显示新闻分类的名称。 在管理员进行新闻操作之前,首先需要验证身份,如果管理员是合法用户则通过验证,否则就不允许进行后续操作,管理员的身份验证和登录模块基本相同,但是其功能要比登录模块少很多,admin 表 结构中的字段如下所示。 管理员编号:用于标识管理员信息,为自动增长的主键。 管理员用户名:用于标识管理员用户名。 管理员密码:用于标识管理员的密码,通常情况下和管理员用户名一起进行身份验证。
7
数据表的创建 创建表可以通过 SQL Server Management Studio 视图进行创建也可以通过 SQL Server Management Studio 查询使用 SQL 语句进行创建。新闻模块同样需要创建多个表进行模块功能的实现,首先最重要 的是 news 表,news 表的字段如下所示。 id:用于标识新闻,为自动增长的主键。 title:用于表示新闻的标题。 time:用于表示新闻发布的事件。 author:用于表示新闻的作者。 content:用于表示新闻的内容。 weather:用于表示新闻发布的天气。 level:用于表示新闻的等级。 hits:用于表示新闻的阅读次数。 classname:用于表示新闻的分类,为整型字段。
8
确定好 news 表的各个字段后,就能够创建一个 news 表,news 表结构如图所示。
数据表的创建 确定好 news 表的各个字段后,就能够创建一个 news 表,news 表结构如图所示。
9
7.2.2 数据表的创建 图中的字段描述了相应的字段在实际应用中的意义,创建表的SQL语句如下所示。 USE [news] GO
数据表的创建 图中的字段描述了相应的字段在实际应用中的意义,创建表的SQL语句如下所示。 USE [news] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[news]( [id] [int] IDENTITY(1,1) NOT NULL, [title] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, [time] [datetime] NULL, [author] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, [content] [nvarchar](3000) COLLATE Chinese_PRC_CI_AS NULL, [weather] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, [level] [int] NULL, [hits] [int] NULL, [classname] [int] NULL, CONSTRAINT [PK_news] PRIMARY KEY CLUSTERED ( [id] ASC //创建 news 表 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
10
数据表的创建 news表中的classname字段为整型字段,这也就是说classname字段为另一个表的外键,另一个表newsclass用于描述新闻的分类的信息,newsclass 字段如下所示。 id:用于标识新闻的分类,为自动增长的主键。 classname:用于显示新闻分类的名称。 上述字段描述了 newsclass 表中需要使用的字段,可以使用 SQL 语句进行表和字段的创建,创建newsclass 表的 SQL 语句如下所示。 USE [news] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[newsclass]( [id] [int] IDENTITY(1,1) NOT NULL, [classname] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_newsclass] PRIMARY KEY CLUSTERED //创建 newsclass 表 ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
11
数据表的创建 上述代码创建了newsclass表,创建完成后,还需要创建admin表,通过上述字段描述可以了解admin表只需要保存管理员的用户名和密码即可,则其字段可以描述为如下所示。 id:用于标识管理员信息,为自动增长的主键。 admin:用于标识管理员用户名。 password:用于标识管理员的密码,通常情况下和管理员用户名一起进行身份验证。 以上述字段描述了 admin 表中需要使用的字段,可以使用 SQL 语句进行表和字段的创建,创建newsclass 表的 SQL 语句如下所示 USE [news] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[admin]( [id] [int] IDENTITY(1,1) NOT NULL, [admin] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, [password] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_admin] PRIMARY KEY CLUSTERED ( [id] ASC //创建 admin 表 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
12
上述代码创建了 admin 表,用于进行管理员的身份验证,创建完成后的 admin 表和 newsclass 表如图所示
数据表的创建 上述代码创建了 admin 表,用于进行管理员的身份验证,创建完成后的 admin 表和 newsclass 表如图所示 创建完成 admin 表之后就需要插入一个管理员,在 SQL 中可以新建查询并执行 SQL 语句进行管理 员表中数据的插入,示例代码如下所示。 INSERT INTO admin (admin,password) VALUES (‘guojing’,’ ’) 执行上述代码就能够进行 admin 表的数据插入,插入一个新管理员之后,就能够在后面的登录操作 中使用该表的管理员信息。
Similar presentations