简单BBS数据库设计.docx
- 文档编号:8487934
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:15
- 大小:166.76KB
简单BBS数据库设计.docx
《简单BBS数据库设计.docx》由会员分享,可在线阅读,更多相关《简单BBS数据库设计.docx(15页珍藏版)》请在冰豆网上搜索。
简单BBS数据库设计
KMUSTJAVA论坛数据库文档
KMUSTJAVABBS
DBMS:
ORACLEVersion10g
作者:
KMUSTJAVA论坛开发小组成员
版本:
0.1
时间:
2011/7/19
说明:
KMUSTJAVA论坛数据库设计文档
I数据库表关系图
II数据库表清单
名称
说明
T_ADMIN
管理员表
T_ARTICLE
帖子表
T_AVATAR
头像表
T_CATEGORY
论坛分类表
T_FEEDBACK
用户意见反馈表
T_FORUM
论坛版块表
T_NOTICE
公告表
T_RESPONSE
反馈应答表
T_SCORE
用户积分明细表
T_USER
用户表
II.1表格T_ADMIN
II.1.1表格T_ADMIN的列清单
名称
注释
数据类型
长度
主要的
外来键
ID
管理员编号
NUMBER
(2)
2
TRUE
FALSE
NAME
管理员用户名
VARCHAR2(30)
30
FALSE
FALSE
PASSWORD
管理员密码
VARCHAR2(30)
30
FALSE
FALSE
REGTIME
管理员注册时间
DATE
FALSE
FALSE
AVATARID
管理员头像编号
NUMBER(3)
3
FALSE
TRUE
II.1.1.1表格T_ADMIN的触发器清单
名称
注释
TRI_DELETE_ADMIN_INFO
在删除管理员之前,修改该管理员发布的公告和应答记录,将这些记录中的管理员编号改为系统默认管理员编号
TRI_DELETE_ADMIN_INFO的文本:
CREATEORREPLACETRIGGERTRI_DELETE_ADMIN_INFO
beforedeleteont_adminforeachrow
begin
updatet_noticesetadminid=1whereadminid=:
OLD.id;
updatet_responsesetadminid=1whereadminid=:
OLD.id;
end;
/
ALTERTRIGGERTRI_DELETE_ADMIN_INFOENABLE;
II.2表格T_ARTICLE
II.2.1表格T_ARTICLE的列清单
名称
注释
数据类型
长度
主要的
外来键
ID
帖子编号
NUMBER(10)
10
TRUE
FALSE
PID
父帖编号,0表示该帖子为主题帖
NUMBER(10)
10
FALSE
FALSE
ROOTID
主题帖编号,主题帖的该字段值与其自身编号相同
NUMBER(10)
10
FALSE
FALSE
TITLE
帖子标题
VARCHAR2(255)
255
FALSE
FALSE
CONTENT
帖子内容
CLOB
FALSE
FALSE
PDATE
发表时间
DATE
FALSE
FALSE
ISLEAF
是否为叶子结点(即没有被回复的帖子),0表示没有被回复,1表示被回复过
NUMBER
(1)
1
FALSE
FALSE
USERID
发帖用户编号
NUMBER(5)
5
FALSE
TRUE
FORUMID
帖子所属版块
NUMBER(3)
3
FALSE
TRUE
II.2.1.1表格T_ARTICLE的触发器清单
名称
注释
TRI_ADD_DEFAULT_SCORE
用户每发一个帖子,不论是主题帖还是回复帖,均为该用户加2分的积分,此时用户积分明细表中的该帖子积分记录的评价用户编号与发帖用户编号相同
TRI_ADD_DEFAULT_SCORE的文本:
CREATEORREPLACETRIGGERTRI_ADD_DEFAULT_SCORE
afterinsertont_articleforeachrow
begin
insertintot_scorevalues(:
NEW.id,:
NEW.userid,:
NEW.userid,2);
end;
/
ALTERTRIGGERTRI_ADD_DEFAULT_SCOREENABLE;
TRI_DELETE_ARTICLE_SCORE
删除帖子之前,同时从用户积分明细表中删除有关该帖子的积分记录
TRI_DELETE_ARTICLE_SCORE的文本:
CREATEORREPLACETRIGGERTRI_DELETE_ARTICLE_SCORE
beforedeleteont_articleforeachrow
begin
deletefromt_scorewherearticleid=:
OLD.id;
end;
/
ALTERTRIGGERTRI_DELETE_ARTICLE_SCOREENABLE;
TRI_UPDATE_ISLEAF_ROOTID
发帖之前,如果该帖是主题贴,则将其rootid置为该帖子的id,如果是回复帖,由将被回复的帖子的isleaf字段置为1,表示非叶子结果(被回复过的帖子)
TRI_UPDATE_ISLEAF_ROOTID的文本:
CREATEORREPLACETRIGGERTRI_UPDATE_ISLEAF_ROOTID
beforeinsertont_articleforeachrow
declaretidt_article.id%type;
begin
if(:
NEW.pid=0)then
tid:
=:
NEW.id;
:
NEW.rootid:
=tid;
else
updatet_articlesetisleaf=1whereid=:
NEW.pid;
endif;
end;
/
ALTERTRIGGERTRI_UPDATE_ISLEAF_ROOTIDENABLE;
II.3表格T_AVATAR
II.3.1表格T_AVATAR的列清单
名称
注释
数据类型
长度
主要的
外来键
ID
头像编号
NUMBER(3)
3
TRUE
FALSE
IMAGE
头像图片
BLOB
FALSE
FALSE
II.4表格T_CATEGORY
II.4.1表格T_CATEGORY的列清单
名称
注释
数据类型
长度
主要的
外来键
ID
分类编号
NUMBER(3)
3
TRUE
FALSE
TITLE
分类标题
VARCHAR2(50)
50
FALSE
FALSE
II.5表格T_FEEDBACK
II.5.1表格T_FEEDBACK的列清单
名称
注释
数据类型
长度
主要的
外来键
ID
意见编号
NUMBER(5)
5
TRUE
FALSE
USERID
发表意见的用户编号
NUMBER(5)
5
FALSE
TRUE
PDATE
意见发表时间
DATE
FALSE
FALSE
TITLE
意见标题
VARCHAR2(50)
50
FALSE
FALSE
CONTENT
意见内容
VARCHAR2(2000)
2000
FALSE
FALSE
ISSOLVED
是否已回复,初始值为0,表示未回复,1表示已回复
NUMBER
(1)
1
FALSE
FALSE
II.5.1.1表格T_FEEDBACK的触发器清单
名称
注释
TRI_DELETE_RESPONSE
在删除用户意见之前,先将反馈应答表中回复该意见的记录删除,以避免外键约束影响
TRI_DELETE_RESPONSE的文本:
CREATEORREPLACETRIGGERTRI_DELETE_RESPONSE
beforedeleteont_feedbackforeachrow
begin
deletefromt_responsewherefeedbackid=:
OLD.id;
end;
/
ALTERTRIGGERTRI_DELETE_RESPONSEENABLE;
II.6表格T_FORUM
II.6.1表格T_FORUM的列清单
名称
注释
数据类型
长度
主要的
外来键
ID
版块编号
NUMBER(3)
3
TRUE
FALSE
TITLE
版块名称
VARCHAR2(50)
50
FALSE
FALSE
DESCRIPTION
版块描述
VARCHAR2(200)
200
FALSE
FALSE
CATEGORYID
所属分类的编号
NUMBER(3)
3
FALSE
TRUE
II.7表格T_NOTICE
II.7.1表格T_NOTICE的列清单
名称
注释
数据类型
长度
主要的
外来键
ID
公告编号
NUMBER(5)
5
TRUE
FALSE
TITLE
公告标题
VARCHAR2(50)
50
FALSE
FALSE
CONTENT
公告内容
VARCHAR2(2000)
2000
FALSE
FALSE
PDATE
公告发布时间
DATE
FALSE
FALSE
ADMINID
发布公告的管理员编号
NUMBER
(2)
2
FALSE
TRUE
II.8表格T_RESPONSE
II.8.1表格T_RESPONSE的列清单
名称
注释
数据类型
长度
主要的
外来键
ID
反馈应答编号
NUMBER(5)
5
TRUE
FALSE
FEEDBACKID
被回复意见的编号
NUMBER(5)
5
FALSE
TRUE
PDATE
回复时间
DATE
FALSE
FALSE
TITLE
回复标题
VARCHAR2(50)
50
FALSE
FALSE
CONTENT
回复内容
VARCHAR2(2000)
2000
FALSE
FALSE
ADMINID
回复管理员编号
NUMBER
(2)
2
FALSE
TRUE
II.8.1.1表格T_RESPONSE的触发器清单
名称
注释
TRI_UPDATE_FEEDBACK_STATUS
当反馈应答表中插入新的回复之后,将对应的用户意见表中记录的issolved字段置为1,表示已经回复
TRI_UPDATE_FEEDBACK_STATUS的文本:
CREATEORREPLACETRIGGERTRI_UPDATE_FEEDBACK_STATUS
afterinsertont_responseforeachrow
declaref_statust_feedback.issolved%type;
begin
selectissolvedintof_statusfromt_feedbackwhereid=:
NEW.feedbackid;
if(f_status=0)then
updatet_feedbacksetissolved=1whereid=:
NEW.feedbackid;
endif;
end;
/
ALTERTRIGGERTRI_UPDATE_FEEDBACK_STATUSENABLE;
II.9表格T_SCORE
II.9.1表格T_SCORE的列清单
名称
注释
数据类型
长度
主要的
外来键
ARTICLEID
帖子编号
NUMBER(10)
10
FALSE
TRUE
PUSER
发帖用户编号
NUMBER(5)
5
FALSE
TRUE
VUSER
评价用户编号
NUMBER(5)
5
FALSE
TRUE
SCORE
评价得分
NUMBER
(2)
2
FALSE
FALSE
II.10表格T_USER
II.10.1表格T_USER的列清单
名称
注释
数据类型
长度
主要的
外来键
ID
用户编号
NUMBER(5)
5
TRUE
FALSE
NAME
用户名
VARCHAR2(30)
30
FALSE
FALSE
VARCHAR2(50)
50
FALSE
FALSE
PASSWORD
密码
VARCHAR2(30)
30
FALSE
FALSE
REGTIME
注册时间
DATE
FALSE
FALSE
ADDRESS
来自何地
VARCHAR2(100)
100
FALSE
FALSE
QQ号
VARCHAR2(20)
20
FALSE
FALSE
PROFESSION
职业
VARCHAR2(20)
20
FALSE
FALSE
SIGNATURE
签名,将会显示在该用户发表的帖子内容的下方
VARCHAR2(100)
100
FALSE
FALSE
AVATARID
头像编号
NUMBER(3)
3
FALSE
TRUE
USABLE
是否可用,1表示可用,0表示不可用
NUMBER
(1)
1
FALSE
FALSE
III序列清单
名称
注释
S_ADMIN
管理员表中id字段的引用值
S_ARTICLE
帖子表中id字段的引用值
S_CATEGORY
论坛分类表中id字段的引用值
S_FEEDBACK
用户意见表中id字段的引用值
S_FORUM
论坛版块表中id字段的引用值
S_NOTICE
公告表中id字段的引用值
S_RESPONSE
反馈应答表中id字段的引用值
S_USER
用户表中id字段的引用值
III.1序列S_ADMIN的文本
CREATESEQUENCES_ADMIN
NOMAXVALUE
INCREMENTBY1
STARTWITH1
NOCACHE
NOORDER
NOCYCLE;
III.2序列S_ARTICLE的文本
CREATESEQUENCES_ARTICLE
NOMAXVALUE
INCREMENTBY1
STARTWITH1
NOCACHE
NOORDER
NOCYCLE;
III.3序列S_CATEGORY的文本
CREATESEQUENCES_CATEGORY
NOMAXVALUE
INCREMENTBY1
STARTWITH1
NOCACHE
NOORDER
NOCYCLE;
III.4序列S_FEEDBACK的文本
CREATESEQUENCES_FEEDBACK
NOMAXVALUE
INCREMENTBY1
STARTWITH1
NOCACHE
NOORDER
NOCYCLE;
III.5序列S_FORUM的文本
CREATESEQUENCES_FORUM
NOMAXVALUE
INCREMENTBY1
STARTWITH1
NOCACHE
NOORDER
NOCYCLE;
III.6序列S_NOTICE的文本
CREATESEQUENCES_NOTICE
NOMAXVALUE
INCREMENTBY1
STARTWITH1
NOCACHE
NOORDER
NOCYCLE;
III.7序列S_RESPONSE的文本
CREATESEQUENCES_RESPONSE
NOMAXVALUE
INCREMENTBY1
STARTWITH1
NOCACHE
NOORDER
NOCYCLE;
III.8序列S_USER的文本
CREATESEQUENCES_USER
NOMAXVALUE
INCREMENTBY1
STARTWITH1
NOCACHE
NOORDER
NOCYCLE;
IV目录清单
名称
注释
D_IMAGES
头像文件存储的路径
IV.1目录P_IMAGES的文本
--Createdirectory
createorreplacedirectoryD_IMAGES
as'C:
\avatar';
V存储过程清单
名称
注释
P_IMG_INSERT
存储过程P_IMG_INSERT用来将用户头像(图片)插入到数据库中
V.1存储过程P_IMG_INSERT的文本
CREATEORREPLACEPROCEDUREP_IMG_INSERT
(tidt_avatar.id%type,filenamevarchar2)
is
f_lobbfile;
b_lobblob;
begin
insertintot_avatar(id,image)
values(tid,empty_blob())returnimageintob_lob;
f_lob:
=bfilename('D_IMAGES',filename);
dbms_lob.fileopen(f_lob,dbms_lob.FILE_READONLY);
dbms_lob.loadfromfile(b_lob,f_lob,dbms_lob.getlength(f_lob));
dbms_lob.fileclose(f_lob);
commit;
end;
/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 BBS 数据库 设计