bbs的資料結構和儲存過程(一) (轉)
/* */
/* FileName: bbs. */
/* */
/* Description: bbs資料結構 */
/* */
/* Table: */
/* */
/* Procedure: */
/* */
/* Author: bigeagle */
/* */
/* Date: 2001/1/29 */
/* */
/* History: */
/* */
/****************************************************************************/
/*資料結構*/
/*bbs表*/
if exists( * from syss where id = object_id('BBSUser'))
drop table BBSUser
go
create table BBSUser
(
id int ntity primary key ,
UserName varchar(20) default '' not null ,
Pass varchar(10) default '' not null ,
E varchar(100) default '' not null ,
Homepage varchar(150) default '' not null ,
Signature varchar(255) default '' not null ,
SignDate datetime default getdate() not null ,
Point int default 0 not null
)
go
create index ix_bbsuser on bbsuser (id , username , password)
/*bbs表情表*/
if exists(select * from sysobjects where id = object_id('Face'))
drop table Face
go
create table Face
(
id tinyint identity primary key ,
Face varchar(30) default '' not null
)
go
/*bbs表*/
if exists(select * from sysobjects where id = object_id('BBS'))
drop table BBS
go
create table BBS
(
id int identity primary key ,
ID int default 0 not null , --根ID
herID int default 0 not null , --父ID
Layer tinyint default 0 not null , --層
OrderNum float(53) default 0 not null , --排序基數
UserID int default 0 not null , --發言人ID
ForumID tinyint default 1 not null , --版面ID
Subject varchar(255) default '' not null , --主題
Content text default '' not null , --內容
FaceID tinyint default 1 not null , --表情
Hits int default 0 not null , --點選數
varchar(20) default '' not null , --發貼IP
Time datetime default getdate() not null , --發表時間
Posted bit default 0 not null --是否精華貼子
)
go
create index ix_bbs on bbs(id , rootid ,layer , fatherid , subject,posted) with DROP_EXISTING
create index ix_bbs1 on bbs(fatherid , forumid) with DROP_EXISTING
create index ix_bbs2 on bbs(forumid , rootid , ordernum) with drop_existing
/*精華區*/
if exists(select * from sysobjects where id = object_id('PostedTopic'))
drop table PostedTopic
go
create table PostedTopic
(
id int identity primary key ,
UserID int default 0 not null , --發言人ID
ForumID tinyint default 1 not null , --版面ID
Subject varchar(255) default '' not null , --主題
Content text default '' not null , --內容
FaceID tinyint default 1 not null , --表情
Hits int default 0 not null , --點選數
IP varchar(20) default '' not null , --發貼IP
Time datetime default getdate() not null --發表時間
)
go
/*forum版面表*/
if exists(select * from sysobjects where id = object_id('forum'))
drop table forum
go
create table Forum
(
ID tinyint identity primary key ,
RootID tinyint default 0 not null , --根ID
FatherID tinyint default 0 not null , --父ID
Layer tinyint default 0 not null , --層
Title varchar(50) default '' not null , --版面名稱
Description varchar(255) default '' not null , --版面描述
MasterID int default 1 not null , --版主ID
TopicCount int default 0 not null , --貼子總數
Time datetime default getdate() not null , --建立時間
IsOpen bit default 0 not null --是否開放
)
go
insert into forum(rootid , fatherid , layer , title , description , masterid) values(1 , 0 , 0 , "談天說地" , "在不違犯國家法律的情況下,你可以發表你自己的言論。" , 1)
insert into forum(rootid , fatherid , layer , title , description , masterid) values(2 , 0 , 0 , "體育" , "在不違犯國家法律的情況下,你可以對體育發表你自己的評論。" , 1)
insert into forum(rootid , fatherid , layer , title , description , masterid) values(1 , 1 , 1 , "站" , "笑話,讓你在工作間隙輕鬆一下。" , 1)
insert into forum(rootid , fatherid , layer , title , description , masterid) values(2,2 , 1 , "體育沙龍" , "體育總和評論。" , 1)
insert into forum(rootid , fatherid , layer , title , description , masterid) values(2,2 , 1 , "足球" , "足球評論。" , 1)
insert into forum(rootid , fatherid , layer , title , description , masterid) values(2,2 , 1 , "海牛俱樂部" , "海牛球迷的討論園地。" , 1)
select * from forum
/*論壇通告表*/
if exists(select * from sysobjects where id = object_id('Notify'))
drop table Notify
go
create table Notify
(
ID int identity primary key ,
TopicID int default 0 not null ,
Closed bit default 0 not null ,
)
go
select * from notify
delete from notify where id=5
/***********以下為過程************************************************************/
/*************************************************************************/
/* */
/* procedure : up_GetBBSInfo */
/* */
/* Description: 取得整個論壇的相關資訊 */
/* */
/* Parameters: none */
/* */
/* Use table: forum , bbs , bbsuser */
/* */
/* Author: bigeagle@163.net */
/* */
/* Date: 2000/2/3 */
/* */
/* History: */
/* */
/*************************************************************************/
if exists(select * from sysobjects where id = object_id('up_GetBBSInfo'))
drop proc up_GetBBSInfo
go
create proc up_GetBBSInfo
as
declare @ForumCount int
declare @TopicCount int
declare @UserCount int
set nocount on
select @ForumCount = count(*) from Forum where layer <> 0
select @TopicCount = count(*) from BBS
select @UserCount = count(*) from BBSUser
/*取得論壇本身資訊*/
select 'ForumCount' = @ForumCount , 'TopicCount' = @TopicCount , 'UserCount' = @UserCount
go
up_getbbsinfo
/*************************************************************************/
/* */
/* procedure : up_GetForumInfo */
/* */
/* Description: 取得指定版面的相關資訊 */
/* */
/* Parameters: @a_intForumID */
/* */
/* Use table: forum , bbs , bbsuser */
/* */
/* Author: bigeagle@163.net */
/* */
/* Date: 2000/2/3 */
/* */
/* History: */
/* */
/*************************************************************************/
if exists(select * from sysobjects where id = object_id('up_GetForumInfo'))
drop proc up_GetForumInfo
go
create proc up_GetForumInfo @a_intForumID int
as
declare @intTopicCount int
declare @intRootTopicCount int
set nocount on
if not exists(select * from Forum where id=@a_intForumID) return 0
select @intTopicCount = count(*) from bbs where forumid = @a_intForumID
select @intRootTopicCount = count(*) from bbs where forumID=@a_intForumID and fatherid=0
select * , 'TopicCount'=@intTopicCount , 'RootTopicCount' = @intRootTopicCount
from Forum where id = @a_intForumID
set nocount off
go
select id , rootid , title , fatherid from forum
/*************************************************************************/
/* */
/* procedure : up_GetPostedForumInfo */
/* */
/* Description: 取得指定版面精華區的相關資訊 */
/* */
/* Parameters: @a_intForumID */
/* */
/* Use table: forum , bbs , bbsuser */
/* */
/* Author: bigeagle@163.net */
/* */
/* Date: 2000/4/17 */
/* */
/* History: */
/* */
/*************************************************************************/
if exists(select * from sysobjects where id = object_id('up_GetPostedForumInfo'))
drop proc up_GetPostedForumInfo
go
create proc up_GetPostedForumInfo @a_intForumID int
as
declare @intTopicCount int
declare @intRootTopicCount int
set nocount on
if not exists(select * from Forum where id=@a_intForumID) return 0
select @intTopicCount = count(*) from bbs where forumid = @a_intForumID and posted=1
select * , 'TopicCount'=@intTopicCount , 'RootTopicCount' = @intTopicCount
from Forum where id = @a_intForumID
set nocount off
go
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990455/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- bbs的資料結構和儲存過程(二) (轉)資料結構儲存過程
- bbs的資料結構和儲存過程(三) (轉)資料結構儲存過程
- MySQL的物理儲存結構和session過程MySqlSession
- 【資料結構——圖和圖的儲存結構】資料結構
- 【資料庫】資料庫儲存過程(一)資料庫儲存過程
- 利用mysqldump只匯出資料庫的表結構、儲存過程和函式MySql資料庫儲存過程函式
- 【PHP資料結構】圖的概念和儲存結構PHP資料結構
- 資料庫儲存過程資料庫儲存過程
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- 批量插入資料的儲存過程儲存過程
- SQL Server 比較兩個資料庫的檢視和儲存過程結構差異SQLServer資料庫儲存過程
- 自動生成對錶進行插入和更新的儲存過程的儲存過程 (轉)儲存過程
- 【SqlServer】清除過期資料的儲存過程SQLServer儲存過程
- MySql資料庫——儲存過程MySql資料庫儲存過程
- 儲存過程返回資料集儲存過程
- Oracle 儲存過程返回結果集|轉|Oracle儲存過程
- Oracle 儲存過程返回結果集 (轉)Oracle儲存過程
- JAVA儲存過程(轉)Java儲存過程
- 層次結構資料的資料庫儲存和使用資料庫
- 儲存過程呼叫不同資料庫的資料儲存過程資料庫
- Mysql 的儲存過程和儲存函式MySql儲存過程儲存函式
- MySQL的寫入資料儲存過程MySql儲存過程
- HBase 資料儲存結構
- Oracle資料儲存結構Oracle
- TorchV的RAG實踐分享(三):解析llama_index的資料儲存結構和召回策略過程Index
- mysql和orcale的儲存過程和儲存函式MySql儲存過程儲存函式
- MySql儲存過程—2、第一個MySql儲存過程的建立MySql儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- 資料庫設計:儲存過程資料庫儲存過程
- 淺談資料庫中的儲存過程資料庫儲存過程
- 管理資料庫儲存結構資料庫
- 一個根據已有表結構來建立新表的儲存過程儲存過程
- SQL分隔字串的儲存過程 (轉)SQL字串儲存過程
- 將表資料生成SQL指令碼的儲存過程和工具SQL指令碼儲存過程
- 從一條資料說起——InnoDB儲存資料結構資料結構