一、论坛数据库练习:
1、 数据库bbsDB,主文件和逻辑文件 初始值都是10M;
2、 bbsDB结构
表名 备注
bbsUser 用户表
bbsSector 版块表
bbsTopic 主贴表
bbsReply 回帖表
二、bbsUser(用户表结构)
字段名 数据类型 是否为空 备注
UID Int Not 用户ID,主键,自动增长
uName Varchar(20) Not 用户姓名,
uLoginName Varvchar(50) Not 用户昵称或者登陆名(至少6个字符)
uPwd Varchar(20) Not 用户密码,默认值为:888888
uAge Int 年龄,在1-150之间
uState Bit 用户状态,0离线,1在线,2禁言,
uClass Int 星级,默认为1
uPoint Int 积分,默认20分
uEmail Varchar(50) Not 邮箱必须包含@符号
uRegDate Datetime 注册时间,默认当天
uTopicCount Int 发帖数,默认0
三、bbsSector(版块表结构)
字段名 数据类型 是否为空 备注
SID In Not 版块表分类ID,主键,自动增长
sName Varchar(20) Not 版块名称
sMasterID Int Not 版主ID, 引用用户表ID,外键
sContent Varchar(200) 简介 不少于6个字符
sCount Int 此版块的发帖数 默认0
四、bbsTopic(主贴表结构)
字段名 数据类型 是否为空 备注
TID Int Not 主贴表ID,主键,自动增长
tSID Int Not 所属版块ID,外键
Title Varchar(200) Not 标题
tContent Ntext Not 内容
tUID Int Not 发帖人ID 外键
tTime Datetime 发帖时间 默认当天
tEndTime Datetime 最后跟帖时间 不能早于发帖时间
tCount Int 跟帖数,默认为0
二、bbsReply(回帖表结构)
字段名 数据类型 是否为空 备注
RID Int Not 回帖表ID,主键,自动增长
rTID Int Not 主贴ID,外键
rUID Int Not 回帖人ID,外键
rContent Ntext Not 回复内容,不少于6个字符
rTime Datetime 回帖时间默认当天
下面是答案
create database bbsDB
on
primary(name=bbsDB_data,
filename='F:/sql实战/bbsDB.mdf',
size=10MB,
maxsize=unlimited,
filegrowth=10%)
create table bbsUser
(
uID int identity(1,1) primary key,
uName varchar(20) not null,
uLoginName varchar(50)check(uLoginName>=6) not null,
uPwd varchar(20) default'888888' not null,
uAge int check(uAge>=1 and uAge <=150),
uState bit default'0',
uClass int default'1',
uPoint int default'20',
uEmail varchar(50) not null,
uRegDate datetime default(getdate()),
uTopicCount int default'0'
)
create table bbsSector
(
sID int identity(1,1) primary key,
sName varchar(20) not null,
sMasterID int not null,
sContent varchar(200) not null,check(sContent>=6),
sCount int default'0'not null
)
alter table bbsSector
add constraint fk_sMasterID
foreign key(sMasterID)references bbsUser
create table bbsTopic
(
tID int identity(1,1) primary key,
tSID int not null,
tTitle varchar(200) not null,
tContent ntext not null,
tUID int not null,
tTime datetime default(getdate()),
tEndtime datetime,
tCount int default'0' not null
)
alter table bbsTopic
add constraint fk_tSID
foreign key(tSID) references bbsSector
alter table bbsTopic
add constraint fk_tUID
foreign key(tUID) references bbsUser
create table bbsReply
(
rID int identity(1,1) primary key,
rTID int not null,
rUID int not null,
rContent varchar not null ,
rTime datetime default(getdate())
)
alter table bbsReply
add constraint chk_rContent check(rContent>=6 )
alter table bbsReply
add constraint fk_rUID
foreign key(rUID) references bbsUser
alter table bbsReply
add constraint fk_rTID
foreign key(rTID) references bbsTopic