Sql初级设计实例:小说网

发现csdn关于设计方面的帖子太少,上次看到一个网友发的帖子提问到,正好本人也维护了一个类似于小说网的网站,便写下来。表结构设计的非常简单,只有6个表。
需要特别说明的一点是 图书内容的分页是以按章节来分页的,而不是通常我们常见的按全本来分页,根据经验,按章节来分页更灵活。
各个表的结构如下:
1.t_user 用户表
create table t_user
(
username varchar(50) primary key, -- 用户名
registertime datetime -- 注册时间
)

2.t_class 分类表(名字土了点,不过中国人都看的懂,只支持一级分类)
create table t_class
(
classid int primary key,
classname varchar(50)
)

3.t_book图书表
create table t_book
(
bookid int identity(1,1) primary key,
bookname varchar(50), -- 书名
author varchar(50), -- 作者
classid int, -- 对应分类id,这里没有建立外键约束,属于个人习惯问题
readcount int, -- 阅读次数
replycount int, -- 评论次数
publishtime smalldatetime, -- 发布时间
lastupdatetimesmalldatetime -- 最后更新时间
)
-- 索引
create index ix_classid on t_book(classid)
create index ix_bookname on t_book(bookname)
create index ix_author on t_book(author)

4.t_chapter 图书章节表
create table t_chapter
(
chapterid int identity(1,1) primary key,
chaptername varchar(50), -- 章节名
bookid int, -- 对应图书id
pagecount int -- 本章节所有内容页数
)
-- 索引
create index ix_bookid on t_chapter(bookid)

5.t_content 图书内容表
create table t_content
(
contentid int identity(1,1) primary key,
content nvarchar(1024), -- 每页存1000汉字
chapterid int, -- 对应章节id
pageindex int -- 内容所在页数,这里采用按章节来分页
)
-- 索引
create index ix_chapterid on t_content(chapterid)
create index ix_chapterid_pageindex on t_content(chapterid,pageindex)

6.t_reply 图书评论表
create table t_reply
(
replyid int identity(1,1) primary key,
replycontent varchar(1000), -- 评论内容
bookid int , -- 对应图书id
replyusername varchar(50), -- 评论人
replytime datetime -- 评论时间
)
-- 索引
create index ix_bookid on t_reply(bookid)

就像你所看到的,这是一个简单的设计实例。最开始的设计原则就是简单,所有频繁的查询都可以用到索引。
因为csdn上的设计实例实在太少,下次我会尝试写个稍微复杂点的实例。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值