最近想和朋友做个论坛,但是不知道它的数据库方面怎么设计,要怎么和其它一些表联系起来呢?有经验的朋友可以提一下方法吗?谢谢

解决方案 »

  1.   

    最近兴趣来临,我也写了一个论坛,功能比较简单,这是数据库table设计源码.<share knowledge>
    use master
    go
    if exists(select *from sysdatabases where name='bbsDB' )
    drop database bbsDBcreate database bbsDB--创建数据库
    on
    (
    name = 'bbsDB_data',
    filename = 'I:\第一阶段\bbsDB_data.mdf',
    size = 20 MB,
    filegrowth = 10%
    )log on--创建日志文件
    (
    name = 'bbsDB_log',
    filename = 'I:\第一阶段\bbsDB_log.ldf',
    size = 1 MB,
    maxsize = 20 MB,
    filegrowth=100%
    )
    USE bbsDB --我要开始编译bbsDB数据库里的表单了
    go
    create table bbsUsers--创建用户新表
    (
    UID INT IDENTITY(1,1) NOT NULL,--只有主键可以引用
      Uname varchar (15) not null ,
    Upassword varchar (10) not null ,
    Uemail varchar (20),
    Usex bit not null,
    Uclass int,
    Ure varchar(20),
    UregDate datetime not null,
    Ustate int null,
    Upoint int null,
    )
    create table bbsTopic--创建主帖表
    (
    TID INT IDENTITY(1,1) NOT NULL primary key,--只有主键可以引用
    TsID int not null,
      TuID int not null,
    TreplyCount int,
    Tface int not null,
    Ttopic varchar (20) not null,
    Tcontents varchar (30) not null, 
    Ttime datetime,
    TclickCount int,
    Tstate int not null,
    TlastRelpy datetime,
    )create table bbsReply--创建版块表
    (
    RID INT IDENTITY(1,1) NOT NULL primary key,--只有主键可以引用
    RtID INT NOT NULL,
    RsID INT NOT NULL,
    RuID INT NOT NULL,
    Rface INT,
    Rcontents varchar(30)  not null,
    Rtime datetime,
    RclickCount INT,)create table bbsSection--创建一个跟帖表
    (
    SID INT IDENTITY(1,1) NOT NULL primary key,--只有主键可以引用
    Sname VARCHAR (32) NOT NULL,
    SmasterID int NOT NULL,
    Sprofile VARCHAR (20),
    SclickCount int,
    StopicCount int,)--bbsUsers版块的各项约束ALTER TABLE bbsUsers ADD
      CONSTRAINT PK_UID PRIMARY KEY (UID),
    CONSTRAINT  DF_Upassword DEFAULT (888888) FOR Upassword, --密码默认为888888
    CONSTRAINT CK_Upassword CHECK(LEN(Upassword)>=6)--密码不能小于6位
    ALTER TABLE bbsUsers
    ADD CONSTRAINT  CK_Uemail CHECK (Uemail LIKE '%@%')--邮件地址必须包含@
    ALTER 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 --注册默认当天日期
    ALTER TABLE bbsUsers  
    ADD CONSTRAINT  DF_Ustate DEFAULT (0) FOR Ustate--状态默认为离线(0)
    ALTER TABLE bbsUsers  
    ADD CONSTRAINT DF_Upoint DEFAULT (20) FOR Upoint--默认积分20--bbsTopic版块的外键约束
    ALTER TABLE bbsTopic
    ADD CONSTRAINT FK_TsID FOREIGN KEY (TsID) REFERENCES bbsSection(SID)--引用外键
    ALTER TABLE bbsTopic
    ADD CONSTRAINT FK_TuID FOREIGN KEY (TuID) REFERENCES bbsUsers(UID)--引用外键
    ALTER TABLE bbsTopic  
    ADD CONSTRAINT  DF_Ttime DEFAULT (getDate()) FOR Ttime--发贴默认当天日期--bbsReply版块的外键约束
    ALTER TABLE bbsReply
    ADD CONSTRAINT FK_RtID FOREIGN KEY (RtID) REFERENCES bbsTopic(TID)--引用外键
    ALTER TABLE bbsReply
    ADD CONSTRAINT FK_RsID FOREIGN KEY (RsID) REFERENCES bbsSection(SID)--引用外键
    ALTER TABLE bbsReply
    ADD CONSTRAINT FK_RuID FOREIGN KEY (RuID) REFERENCES bbsUsers(UID)--引用外键
    ALTER TABLE bbsReply  
    ADD CONSTRAINT  DF_Rtime DEFAULT (getDate()) FOR Rtime--回贴默认当天日期--bbsSection版块的外键约束
    ALTER TABLE bbsSection
    ADD CONSTRAINT FK_SmasterID FOREIGN KEY (SmasterID) REFERENCES bbsUsers(UID)--引用外键
      

  2.   

    我想用JSP开发一个论坛系统可不可以提供点资料呀?谢谢