JAVAEYE简易数据库设计

JAVAEYE简易数据库设计

前言

在对JAVAEYE数据库设计的过程中渐渐明白了些方法,大略掌握了些步骤(纯属个人观点,仅供参考):

分析整个系统找出相对独立的基本结构制成表,在这个系统中我主要找出了以下几种基本表:useinfo(用户表)bloginfo(博客表)message(留言)photos(相册)posts(帖子)等。

列出每个表中应该有的属性,例如用户表的属性应有:name(名字)state(目前该用户的状态,包括在线和离线等)等。

根据现有的表找出表与表之间的关系,这些关系有一对一,一对多,多对多(注意:如果是多对多关系则需要再生成一全表来联系这两张表),根据关系确定联系则大功告成了。

正文

Table1:userinfo(用户表:储存用户基本信息)

属性名

类型

长度

说明

User_id

int

 

主键

User_name

char

20

 

User_age

Int

 

 

User_sex

char

4

 

User_state

int

 

用户状态:0在线、1离线、2看博客

 

 

Table2:blogClass(博客分类表:储存博客的种类,主要有:java编程、javaeye等几种)

属性名

类型

长度

说明

Class_id

Int

 

主键

Class_name

char

20

 

 

 

Table3:bloginfo(博客表:储存博客信息)

属性名

类型

长度

说明

Blog_id

int

 

主键

Blog_tittle

char

50

博客标题

Blog_content

char

255

博客内容

Id_user

int

 

外键:依据用户表中的user_id

Id_class

int

 

外键:依据博客分类表中的class_id

 

注:用户表,博客表(一对多);博客分类表,博客表(一对多)

 

 

 Table4:comments(评论表:储存用户对某篇博客的评论)

属性名

类型

长度

说明

Comment_id

int

 

主键

Comment_content

char

100

 

Comment_user

char

20

发表评论的用户的名字

Id_blog

int

 

外键:依据博客表中blog_id

 

注:博客表,评论表(一对多);特别注意:在这里为了简单,我把用户表和评论表设计成没有外在联系,即不能根据用户ID察看某个用户发表的评论,所以comment_user不是外键,与用户表没有实际联系。

 

 

 Table5:attention(关注表:储存用户关注谁和被谁关注)

属性名

类型

长度

说明

Attention_id

Int

 

主键

Id_me

int

 

外键:依据用户表中的user_id

Id_friend

int

 

外键:依据用户表中的user_id

 

注:关注表是由用户表和用户表自身之间的关系产生的,即自身的多对多关系,因为该表中两个外键都是依赖用户表,我们可以根据这两个外键确定某用户关注的人和被谁关注了。特别注意:这个表有个缺点那就是如果关注或被关注的人太多了就不适用了,如果某用户关注了一万个用户那就需要一万行,效率极低。

 

 

 Table6:message(留言表:储存用户收到的留言)

属性名

类型

长度

说明

Message_id

int

 

主键

Message_content

char

255

 

Message_leaver

char

20

留言者的名字

 

注:该表与评论表差不多。用户表,留言表(一对多)。

 

 

 Table7download(下载表:储存用户下载博客的相关信息)

属性名

类型

长度

说明

Download_id

Int

 

主键

Download_count

int

 

该博客被下载的次数

Id_user

int

 

外键:依据用户表中的user_id

Id_blog

Int     

 

外键:依据博客表中的blog_id

 

注:该表有两个不同的外键。意思即为:一个用户可以下载多篇博客;一篇博客可以被多个用户下载。

 

 

 Table8:circle(圈子表:储存圈子信息)

属性名

类型

长度

说明

Circle_id

int

 

主键

Circle_name

char

45

圈子的名字

 

注:圈子相当于QQ中的群。

 

 

 Table9:Circle_user(圈子—用户表:用于查找某用户所属的圈子或某圈子里的用户)

属性名

类型

长度

说明

Circle_user_id

int

 

主键

Id_user

int

 

外键:依据用户表中的user_id

Id_circle

Int

 

外键:依据圈子表中的circle_id

 

注:该表是典型的联结多对多的两个表的表,有了该表就可以根据用户ID查找出他所属的圈子有哪些,也可以根据圈子ID查找出该圈子里有哪些用户。

 

 

 

 Table10:forum(论坛表:储存论坛相关信息)

属性名

类型

长度

说明

Forum_id

int

 

主键

Forum_name

char

 

 

Table11: posts(帖子表:储存用于客户发表的帖子)

 

属性名

类型

长度

说明

Post_id

Int

 

主键

Post_content

char

<span style="font-family: Times New Roman; font-s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值