数据库课程设计报告7794171Word格式.docx
- 文档编号:6281543
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:40
- 大小:612.67KB
数据库课程设计报告7794171Word格式.docx
《数据库课程设计报告7794171Word格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告7794171Word格式.docx(40页珍藏版)》请在冰点文库上搜索。
2.2.1具体任务
本次我选的课题论坛交友系统,具体任务是设计一个论坛交友系统相应的数据库,并实现在这个数据库上的一个应用。
数据库的设计包括概念模型,并能根据概念模型设计一个相应的逻辑模型和物理模型,且逻辑模型必须满足3NF。
数据库管理系统我选用SQLSERVER2008R2,应用采用ASP.NET实现一个Web程序。
这个Web程序为BS模式,用户可以通过此Web应用实现对数据库的增、删、改等操作。
2.2.2需求分析
本论坛交友系统要实现新闻功能、论坛功能、添加好友、管理好友、写文章等功能。
新闻功能:
管理员可以登入系统管理新闻,包括发布新闻删除新闻,用户可以查看并评论新闻。
论坛功能:
用户可发帖、回帖、以及管理帖子,管理员可以删除帖子,通过帖子用户可以与好友交流。
添加好友:
当用户看到自己认识或想认识的人时可以将其添加为好友。
管理好友:
用户可以备注好友,帮助用户记忆以免混淆好友,用户也可以删除好友。
写文章:
用户可以通过此系统发布自己的文章,表达自己的看法,其他用户可以浏览并评论文章。
系统提供三中种用户,分别是管理员用户、会员用户和游客用户。
管理员可以管理新闻、管理帖子以及管理文章。
会员用户可以浏览新闻、评论新闻、浏览文章、评论文章、写文章、修改个人资料、发帖子浏览帖子、回复帖子、添加好友、管理好友。
游客可以浏览新闻、浏览文章、浏览帖子、注册成为会员。
用例图如下:
图2-1系统用例图
3.课程设计说明书
3.1概念设计
在MicrosoftVisio中给出E-R图
图3-1交友论坛系统E-R图
3.2逻辑设计
给出关系模式。
管理员(管理员名,密码);
用户(用户名,密码,真实名,性别,生日,电话,qq,头像,E-mail,地址)
好友关系(用户名,好友名,备注)
帖子(帖子编号,用户名,标题,时间,内容)
帖子回复(回复号,帖子号,回复的回复号,用户名,时间,内容,第几楼)
文章(文章编号,用户名,标题,时间,关键字,内容,阅读次数)
文章评论(文章编号,用户名,时间,内容)
新闻(新闻编号,时间,标题,作者,内容,阅读次数)
新闻评论(新闻编号,评论者名,时间,评论内容)
在PowerDesigner逻辑结构设计(如:
图3-2):
图3-2PowerDesigner逻辑结构设计
3.3物理设计
选定DBMS,如:
SQLServer2005,建立数据库、数据表、视图、存储过程等。
对数据库大小(初始大小、增量)、物理参数(主文件、日志文件,…)等给出估计和说明。
3.3.1选定DBMS
本系统选用SQLServer2008R2作为DBMS,SQLServer2008R2采用关系型数据模型,操作简单,响应速度快作为本系统的DBMS非常合适。
3.3.2建立数据库
CREATEDATABASEcommunity
ON
PRIMARY
(
NAME=text,
FILENAME='
D:
\数据库\community.mdf'
SIZE=20MB,
MAXSIZE=100MB,
FILEGROWTH=20%
LOGON
NAME=text_log,
\数据库\community_log.ldf'
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=5MB
)
3.3.3建立数据表
表:
管理员
createtableadministrator(
namenvarchar(30)notnull,
passwordnvarchar(30)null,
constraintPK_ADMINISTRATORprimarykey(name)
文章
createtablearticle(
nointidentity(1,1),
usernamenvarchar(30)null,
titlenvarchar(20)null,
datedatetimenull,
keywordnvarchar(20)null,
contenttextnull,
readTimeintnull,
constraintPK_ARTICLEprimarykey(no)
文章评论
createtablearticleComment(
articleNointnotnull,
usernamenvarchar(30)notnull,
datedateTimenotnull,
contentnvarchar(400)null,
constraintPK_ARTICLECOMMENTprimarykey(articleNo,username,date)
帖子
createtablecard(
constraintPK_CARDprimarykey(no)
好友关系
createtablefriendship(
useNamenvarchar(30)notnull,
labelnvarchar(20)null,
constraintPK_FRIENDSHIPprimarykey(useName,name)
新闻
createtablenews(
nointidentity(),
titlenvarchar(40)null,
authornvarchar(40)null,
constraintPK_NEWSprimarykey(no)
新闻评论
createtablenewsComment(
newsNointnotnull,
constraintPK_NEWSCOMMENTprimarykey(newsNo,username,date)
回复
createtablerevertTo(
cardNointnull,
rev_nointnull,
queenintnull,
constraintPK_REVERTTOprimarykey(no)
用户
createtable"
user"
(
passwordnvarchar(30)notnull,
realNamenvarchar(20)null,
sexvarchar
(1)nulldefault'
男'
constraintCKC_SEX_USERcheck(sexisnullor(sexin('
'
女'
))),
birthdaydatenull,
telephonevarchar(12)null,
qqnvarchar(11)null,
imagenvarchar(40)null,
eMailnvarchar(50)null,
addressnvarchar(100)null,
constraintPK_USERprimarykey(name)
3.3.4建立视图
用于选择用户新闻评论的视图
createviewuserNewsComment([image],username,[date],content,newsNo)
as
select[image],username,[date],content,newsNofromnewsComment,[user]
wherename=username
用于选择用户文章评论的视图
createviewuserArticleComment([image],username,[date],content,articleNo)
select[image],username,[date],content,articleNofromarticleComment,[user]
wherename=username
用于选择帖子回复的视图
createviewcardRevert([image],queenHead,name,realName,qq,[eMail],[no],time
content,queen,quote,cardNo)
select[image],c1.queenasqueenHead,name,realName,qq,[eMail],c1.[no],
c1.[date]astime,c1.content,c2.queen,c2.contentasquote,c1.cardNo
from[user],revertToc1,revertToc2
wherename=c1.usernameand(c2.no=c1.rev_no)
UNION
c1.[date]astime,c1.content,NULL,NULLasquote,c1.cardNo
from[user],revertToc1wherename=c1.usernameand(c1.rev_noISNULL)
用于选择自己好友关系的视图
createviewuserFriendship
(label,name,realname,sex,birthday,eMail,telephone,useName)
selectlabel,friendship.name,realname,sex,convert
(nvarchar(10),birthday,102)birthday,eMail,telephone,useName
from[user],friendshipwherefriendship.name=[USER].name
3.3.5建立存储过程
由于查找用户有字符串匹配,而且采用了模糊查找,如果每次查找都编译执行则耗时多,影响相应速度所以采用一个存储过程提高相应速度。
建立一个FindUser的存储过程,其有两个参数分别是用户自己的用名@name和匹配的字符串@kind。
usecommunity
GO
createPRocFindUser@namenvarchar(30)nvarchar(30)
AS
selectname,realname,sex,convert(nvarchar(10),birthday,102)
birthday,eMail,telephone
from[user]wherename!
=@nameandnamelike'
%'
+@kind+'
andnamenotin(selectnamefromfriendshipwhereuseName=@name)
3.3.7建立触发器
分别创建三个存储器,用于提示新闻,文章和帖子删除时的操作.
删除新闻时的触发器:
CREATETRIGGERnewsDelete
ONnews
afterdelete
AS
BEGIN
print'
删除一条新闻'
END
删除文章时的触发器:
CREATETRIGGERarticleDelete
ONarticle
删除一篇文章'
删除帖子时的触发器:
CREATETRIGGERcardDelete
ON[card]
删除一个帖子'
3.4建立访问数据用户admin
图3-3访问数据用户
图3-4为用户选择相应的数据库
4.课程设计成果
4.1系统设计
本社区乐园系统一共有三个子系统,分别是新闻系统、会员系统和论坛系统。
新闻系统可以更新新闻、浏览评论新闻、删除新闻。
会员系统有注册会员、管理会员、加为好友、修改密码。
发布文章、评论文章等功能。
论坛子系统有发帖、管理贴子、回复帖子等功能。
系统功能结构图如:
图4-1
图4-1系统功能结构图
4.2数据库访问类SqlData中的函数
4.2.1建立连接
publicvoidOpen()
{
if(con==null)
return;
if(con.State==ConnectionState.Closed)
con.Open();
}
4.2.2关闭连接
publicvoidClose()
if(con.State==ConnectionState.Open)
con.Close();
4.2.2执行SQL如:
增、删、改
publicBooleanExceSQL(stringsql)
this.Open();
SqlCommandcom=newSqlCommand(sql,this.con);
try
com.ExecuteNonQuery();
returntrue;
catch
returnfalse;
finally
this.Close();
4.2.2执行查询语句并返回结果
publicSqlDataReaderExceRead(stringsql)
returncom.ExecuteReader();
returnnull;
publicDataSetExceDataSet(stringsql,stringname)
SqlDataAdapterdp=newSqlDataAdapter(sql,this.con);
DataSetds=newDataSet();
dp.Fill(ds,name);
returnds;
4.2.2执行存储过程
publicDataSetExcePRocDataSet(stringsql,SqlParameter[]Params,stringname)
commandType=CommandType.StoredProcedure;
foreach(SqlParameterpinParams)
com.Parameters.Add(p);
SqlDataAdapterdp=newSqlDataAdapter(com);
dp.Fill(ds,name);
4.3系统包含的功能页面
社区乐园系统中共包含了28个功能页面。
6个管理员页面,4个文章页面、2个主要页面、2个新闻页面、4个帖子页面、7个用户页面,其它页3个.具体页面如:
表4-1。
表4-1系统包含的功能页面
文件名
功能
说明
homepage.aspx
系统首页
系统的主页
homeAbout.aspx
关于页面
大概介绍系统
AdminArticleMang.aspx
管理员管理文章页面
管理员管理文章
AdminChangePw.aspx
管理员修改密码页面
管理员修改密码
AdminNewsMang.aspx
管理员管理新闻页面
管理员管理新闻
AdminNewsRead.aspx
管理员查看新闻页面
管理员查看新闻
AdminPostMang.aspx
管理员管理帖子页面
管理员管理帖子
ArticleList.aspx
所有文章列表页面
列出所有文章
ArticleManager.aspx
用户文章管理页面
用户管理自己写的文章
articleRead.aspx
文章阅读页面
阅读文章并评论
articleWrite.aspx
写文章页面
用户写文章页面
Post.aspx
发帖页面
用户发帖的页面
postManager.aspx
用户帖子管理页面
用户管理帖子
postScan.aspx
帖子浏览页面
浏览和回复帖子
postScanAll.aspx
列出所有帖子页面
将所有帖子列出
userPage.aspx
用户主页
显示用户好友动态
userPassword.aspx
用户修改密码页面
用户修改密码
userInformation.aspx
用户基本信息页面
用户修改基本信息
register.aspx
用户注册页面
用户注册
registerSucess.aspx
用户注册成功页面
提示用户注册成功
friendFind.aspx
查找用户页面
查找用户并添加为好友
friendMang.aspx
管理好友页面
管理好友
newsAll.aspx
新闻列表页面
列出所有新闻
newsDetail.aspx
浏览新闻页面
浏览和评论新闻
login.aspx
用户登入页面
用户登入
loginAdmin.aspx
管理员登入页面
管理员登入
CheckCode.aspx
产生验证码页面
产生验证码
4.4实例编码及测试
对界面设计中,界面上的控件所需实现的功能进行编码,以使功能实现。
由于页面和代码太多,不可能一一列出,所以这里只列出重要的页面及编码。
4.4.1用户注册
部分页面设计:
图4-2用户注册页面设计
后台代码:
protectedvoidButton1_Click(objectsender,EventArgse)
if(this.Label1.ForeColor==Color.Red)
this.Page.ClientScript.RegisterStartupScript(this.GetType(),"
"
"
<
script>
alert(\"
请?
正y确¨
¡
¤
填¬
?
写¡
ä
用®
户¡
ì
名?
!
ê
\"
)<
);
SqlDatadata=newSqlData();
SqlParameter[]parames=newSqlParameter[]{
data.MakeParam("
@name"
SqlDbType.NVarChar,30,this.name.Text),
@password"
SqlDbType.NVarChar,30,this.password.Text),
@realName"
SqlDbType.NVarChar,20,this.realName.Text),
@sex"
SqlDbType.NVarChar,1,this.sex.SelectedValue),
@birthday"
SqlDbType.Date,0,Conver
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告 7794171