|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。bbs的树形布局显现能够有良多种办法,个中对照简单想到的是递回和排序串办法,但这两种办法并非很好,那末如何才算是对照公道的算法呢?
递回办法不必讲,人人都晓得怎样用,先讲讲排序串办法,最复杂的排序串办法能够如许用,只用一个id就能够完成树型,向如许
1001
2002
3001001
4001001001
5001002001
用这个字符串排序后就酿成如许:
001
001001
001001001
001002001
002
这类办法简单完成,但弱点也是很分明,一个是回帖数受限定,另外一个跟着回帖增添会愈来愈长,影响数据库效力。
上面一种办法是李龙的,属于变通的排序串办法
DDL
--------------
CREATETABLEdbo.Message
(
IDnumeric(18,0)IDENTITY(1000,1),
DateAndTimedatetimeDEFAULTgetdate()NOTNULL,
AuthorIDnumeric(18,0)NOTNULL,
Subjectnvarchar(250)NOTNULL,
BodyntextNULL,
LinkURLnvarchar(100)NULL,
TextForLinknvarchar(50)NULL,
ImageURLnvarchar(100)NULL,
ClassintDEFAULT0NOTNULL,
ClientInfonvarchar(250)NULL,
RemoteAddrnvarchar(50)NULL,
CONSTRAINTPK_BBSMessage
PRIMARYKEYNONCLUSTERED(ID,AuthorID)
)
go
CREATETABLEdbo.MsgRefTab
(
MsgIDnumeric(18,0)NOTNULL,
ParentIDnumeric(18,0)NOTNULL,
AncestorIDnumeric(18,0)NOTNULL,
ChildNumnumeric(18,0)DEFAULT0NOTNULL,
LinkStrnvarchar(250)NOTNULL,
CONSTRAINTPK_BBSRefTab
PRIMARYKEYNONCLUSTERED(MsgID)
)
go
-----------------
存储历程:
-----------------
--抽出
CREATEPROCEDUREsp_Summary
@HaveBodybit,
@fromnumeric,
@tonumeric
AS
IF(@HaveBody=1)
selectt.ID,t.DateAndTime,m.Nicknameas
Author,m.Email,t.Subject,t.Body,t.LinkURL,t.TextForLink,t.ImageURL,s.ChildNu
m,s.ParentID
fromMessaget
,MsgRefTabASs
,(SELECTMsgIDFROMMsgRefTabWHEREParentID=0)ASf
,MembersASm
wheret.ID=s.MsgID
andf.MsgID=s.AncestorID
andf.MsgIDbetween@fromand@to
andm.MemberID=t.AuthorID
orderbys.AncestorID,s.LinkStr
ELSE
selectt.ID,t.DateAndTime,m.Nicknameas
Author,m.Email,t.Subject,t.LinkURL,t.TextForLink,t.ImageURL,s.ChildNum,s.Par
entID
fromMessaget
,MsgRefTabASs
,(SELECTMsgIDFROMMsgRefTabWHEREParentID=0)ASf
,MembersASm
wheret.ID=s.MsgID
andf.MsgID=s.AncestorID
andf.MsgIDbetween@fromand@to
andm.MemberID=t.AuthorID
orderbys.AncestorID,s.LinkStr
go
--加贴
CREATEPROCEDUREsp_Add_Message
@AuthorIDnumeric,
@Subjectnvarchar(250),
@Bodyntext,
@LinkURLnvarchar(100),
@TextForLinknvarchar(50),
@ImageURLnvarchar(100),
@ParentIDnumeric,
@IDnumericOUTPUT,
@ChildNumnumericOUTPUT,
@LinkStrnvarchar(250)OUTPUT,
@AncestorIDnumericOUTPUT
AS
INSERTINTOMessage(
AuthorID,
Subject,
Body,
LinkURL,
TextForLink,
ImageURL)
VALUES(
@AuthorID,
@Subject,
@Body,
@LinkURL,
@TextForLink,
@ImageURL)
SELECT@ID=@@IDENTITY
UPDATEMsgRefTab
SET
ChildNum=ChildNum+1
WHERE
MsgID=@ParentID
SELECT@ChildNum=ChildNum,
@LinkStr=LinkStr,
@AncestorID=</p>强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。 |
|