收藏 分享(赏)

bbs数据库设计1177987384-精品版.doc

上传人:无敌 文档编号:746768 上传时间:2018-04-20 格式:DOC 页数:15 大小:125.50KB
下载 相关 举报
bbs数据库设计1177987384-精品版.doc_第1页
第1页 / 共15页
bbs数据库设计1177987384-精品版.doc_第2页
第2页 / 共15页
bbs数据库设计1177987384-精品版.doc_第3页
第3页 / 共15页
bbs数据库设计1177987384-精品版.doc_第4页
第4页 / 共15页
bbs数据库设计1177987384-精品版.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、完成 BBS 数据库建库、建表、加约束 :表 表 名 作 用 备 注用户表 bbsUsers 存储注册的用户信息 用户注册后才能发贴和回贴主贴表 bbsTopic 存储主贴的内容跟贴表 bbsReply 存储跟贴的内容因主贴和跟贴有些内容不同,因此分为两张表版块表 bbsSection 存储版块的信息 包括版块名、版主等信息用户表需求详细说明:1. 非空约束。某列是否允许为空,该约束已在建表时指定(NULL)2、主键约束。UID 列为主键3、默认约束。初始密码:默认为 6 个“8”即 888888性别:默认为 1(男)注册日期:默认为当前日期用户状态:默认为 0(离线)用户级别:默认为 1(星

2、级)用户积分:默认为 20 点4、检查约束。密码:至少 6 位电子邮件:必须包含“”字符5、外键约束。本表无外键表 名 bbsSection (版块表 ) 主 键 SID列 名 数据类型 长度 是否允许为空 描 述SID int 4 不允许 版块编号,自动增长Sname varchar 32 不允许 版块名称UID int 4 不允许 版主的用户 ID,外键;引用用户表 bbsUsers的 UIDSprofile varchar 20 允许 版面简介SclickCount int 4 允许 点击率StopicCount int 4 允许 发贴数表 名 bbsTopic(主贴表) 主 键 TID

3、列 名 数据类型 长 度 是否为空 默认值 描 述TID int 4 不允许 贴子编号,自动增长SID int 4 不允许 版块编号;外键,引用bbsSection 表的主键 SIDUID int 4 不允许 发贴人 ID;外键,引用 bbsUsers表的主键 UIDTreplyCount int 4 允许 0 回复数量 Tface int 4 允许 发贴表情Ttopic varchar 20 不允许 标题Tcontents varchar 30 不允许 正文,必须大于 6 个字符Ttime datetime 8 允许 当天 发贴时间TclickCount int 4 允许 0 点击数Tsta

4、te int 4 不允许 1状态,例如是否被锁,是否为精华贴TlastReply datetime 8 允许 最后回复时间,必须晚于发贴时间表名 bbsReply(回贴表) 主键 RID列名 数据类型 长度 是否为空 默认值 描述RID int 4 不允许 自动编号, 贴子编号TID int 4 不允许 主贴 ID;外键,引用bbsTopic 表的主键 TIDSID int 4 不允许 版块 ID;外键,引用bbsSection 表的主键 SIDUID int 4 不允许 回贴人 ID, 外键,引用bbsUsers 表的主键 UIDRface int 4 允许 回贴表情Rcontents va

5、rchar 30 不允许 正文,必须大于 6 个字符Rtime datetime 8 允许 当天 回贴时间RclickCount int 4 允许 点击数代码的实现:USE masterGO/*-检查是否已存在 bbsDB 数据库:查询 master 数据库中的系统表 sysdatabases-*/IF EXISTS (SELECT * FROM sysdatabases WHERE name = bbsDB)DROP DATABASE bbsDBGOEXEC xp_cmdshell mkdir D:project -调用 DOS 命令创建文件夹/*-建库-*/CREATE DATABASE

6、bbsDBON (/*-数据文件的具体描述-*/NAME = bbsDB_data, -主数据文件的逻辑名FILENAME = D:projectbbsDB_data.mdf , -主数据文件的物理名SIZE = 10 MB, -主数据文件初始大小FILEGROWTH = 20% -主数据文件的增长率) LOG ON (/*-日志文件的具体描述,各参数含义同上 -*/NAME = bbsDB_log, FILENAME = D:projectbbsDB_log.ldf ,SIZE = 1MB, MAXSIZE = 20MB,FILEGROWTH = 10%)GO/*-建用户表-*/USE bb

7、sDBGO/*-检查是否已存在表 bbsUsers:查询 bbsDB 数据库中的系统表 sysobjects-*/IF EXISTS(SELECT * FROM sysobjects WHERE name=bbsUsers)DROP TABLE bbsUsersGOCREATE TABLE bbsUsers (UID INT IDENTITY (1,1) NOT NULL , -自动编号,标识列Uname VARCHAR(15) NOT NULL , -呢称Upassword VARCHAR (10) , -密码Uemail VARCHAR (20) , -邮件Ubirthday DATETI

8、ME , -生日Usex BIT NOT NULL , -性别Uclass INT , -级别(几星级)Uremark VARCHAR (20) , -备注UregDate DATETIME NOT NULL , -注册日期Ustate INT NULL , -状态(是否禁言等)Upoint INT NULL -积分(点数)) GOSELECT * FROM bbsUsersGO/*-添加约束-*/ALTER TABLE bbsUsers ADD CONSTRAINT PK_UID PRIMARY KEY(UID) -主键ALTER TABLE bbsUsers ADD CONSTRAINT

9、DF_Upassword DEFAULT (8888) FOR Upassword -初始密码密码为 8888ALTER TABLE bbsUsers ADD CONSTRAINT DF_Usex DEFAULT (1) FOR Usex -性别默认为男(1)ALTER TABLE bbsUsers ADD CONSTRAINT DF_Uclass DEFAULT (1) FOR Uclass -级别默认为 1 星级ALTER TABLE bbsUsers ADD CONSTRAINT DF_UregDate DEFAULT (getDate( ) FOR UregDate -注册日期默认为当

10、前日期ALTER TABLE bbsUsers ADD CONSTRAINT DF_Ustate DEFAULT (0) FOR Ustate -状态默认为离线ALTER TABLE bbsUsers ADD CONSTRAINT DF_Upoint DEFAULT (20) FOR Upoint -默认积分 20 点ALTER TABLE bbsUsers ADD CONSTRAINT CK_Uemail CHECK (Uemail LIKE %) -必须包含字符ALTER TABLE bbsUsers ADD CONSTRAINT CK_Upassword CHECK (LEN(Upass

11、word) = 6) -至少 6 位GO-插入测试数据INSERT INTO bbsUsers (Uname,Upassword,Uemail,Ubirthday,Uremark,Upoint) VALUES (火云邪神,hxy123,, 1988-7-9,快,20000)GOselect * from bbsUsers=/*新建 bbsSection(版块表)表*/if exists(select * from sysobjects where name = bbsSection)drop table bbsSectionGOcreate table bbsSection(SID INT I

12、DENTITY (1, 1) NOT NULL ,Sname VARCHAR (32) NOT NULL ,UID INT NOT NULL ,Sprofile VARCHAR (255) NULL ,SclickCount INT NULL ,StopicCount INT NULL )/*bbsSection 表约束*/alter table bbsSection add constraint PK_SID primary key (SID) -主键约束alter table bbsSection add constraint DF_SclickCount default(0) for S

13、clickCount -默认约束alter table bbsSection add constraint DF_StopicCount default(0) for StopicCount -默认约束alter table bbsSection add constraint FK_SmasterID foreign key (UID) references bbsUsers(UID)=/*新建 bbsTopic(主贴表)表*/if exists(select * from sysobjects where name = bbsTopic)drop table bbsTopicGOcreate

14、 table bbsTopic(TID INT IDENTITY (1, 1) NOT NULL , -帖子编号SID INT NOT NULL , -版块编号UID INT NOT NULL , -发帖人TreplyCount INT NULL , -回复数量Tface INT NULL , -发帖表情Ttopic VARCHAR(20) NOT NULL , -标题Tcontents VARCHAR(30) NOT NULL , -正文Ttime DATETIME NULL, -发帖时间TclickCount INT NULL , -点击数Tstate INT NOT NULL, -状态T

15、lastReply DATETIME NULL )/*建 bbsTopic 约束 */alter table bbsTopic add constraint PK_TID primary key (TID) -主键约束alter table bbsTopic add constraint FK_TsID foreign key (SID) references bbsSection(SID) -外键约束alter table bbsTopic add constraint FK_TuID foreign key (UID) references bbsUsers (UID) -外键约束alte

16、r table bbsTopic add constraint DF_TreplyCount default(0) for TreplyCount -默认约束alter table bbsTopic add constraint DF_Ttime default(getDate() for Ttime -默认约束alter table bbsTopic add constraint DF_TclickCount default(0) for TclickCount -默认约束alter table bbsTopic add constraint DF_Tstate default(1) for

17、 Tstate -默认约束alter table bbsTopic add constraint CK_Tcontents check (LEN(Tcontents)6) -检查约束alter table bbsTopic add constraint CK_TlastReply check (TlastReplyTtime AND TlastReply = getdate() -检查约束alter table bbsTopic add constraint CK_Ttime check (Ttime=getDate() =/*建表 bbsReply((回贴表)*/if exists(select * from sysobjects where name = bbsReply)drop table bbsReplyGOcreate table bbsReply(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报