第四章 数据库设计
第一节 数据库E -R图
一、实体设计
为了把用户的数据要求清晰明确地表达出来,通常要建立一个概念性的数据模型。在建立数据模型之前,首先来探讨本博客系统所需要的实体及其属性。
本博客系统所涉及的部分实体及其属性包括:
① 用户:用户ID、用户名称、用户密码、性别、电子邮件、安全问题回答、备注、用户生日、用户地址、用户类型、注册时间。 ② 博客文章类别:类别ID、类别名称。
③ 博客文章:博文ID、博客标题、作者、博客类别、博客内容、访问次数、图片、发布时间。
④ 留言消息:ID、发布人、主题、电子邮件、QQ号码、电话号码、用户地址、主页、表情、内容。
⑤ 评论:评论ID、评论者、评论主题、评论内容、评论时间、评论博客ID。 综合本系统各子模块要实现的功能,通过前面对博客信息系统数据的分析可以得到部分实体图及属性如下:
① 用户表实体图及属性如图4.1所示。
图4.1 用户表实体
-18-
② 博客文章类别表实体图及属性如图4.2所示。
图4.2 博客文章类别实体
③ 博客文章表实体图及属性如图4.3所示。
图4.3 博客文章表实体
④ 留言消息表实体图及属性如图4.4所示。
-19-
图4.4 留言消息实体
⑤ 评论表实体图及属性如图4.5所示。
图4.5 评论表实体
二、博客系统数据库E-R图
E-R模型的组成元素有:实体、属性、联系。E-R模型用E-R图表示。实体是用户工作环境中所涉及的事务,属性是对实体特征的描述。
① 模型中的实体相当于实体集、一个表,而不是单个实体或表中的一行。实体用矩形框表示,实体名称标注在矩形框内。用菱形表示实体间的联系,菱形框内写上联系名,用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型。
-20-
② 属性是实体的性质。用椭圆框表示,与实体之间用一条线相连表的主码是关键属性,关键属性项加下划线。
③ 各子系统模块中主键相同的字段之间存在着相互关联的关系。 ④ 在程序中实现对它们的完整性和一致性控制。 本博客系统的E-R图如图4.6所示。
图4.6 博客系统E-R图
第二节 系统数据表设计
博客系统中的数据管理形式采用数据库,根据系统需要与数据规范化分为:用户表(User) ,博客文章类别表(Class),博客文章表(Content),留言消息表(Message),评论表(Reply),照片表(Photo),管理员表(Manage),连接表(Link)。 以下列举主要表结构:
-21-
表4.1 用户表(User) 字段名 数据类型 主键 主键 是否为空 备注 唯一的ID UserID UserName UserPass UserSex UserEmail Answer UserBeizhu UserBirthday UserAddress UserPower UserRetime int char(20) char(20) char(10) varchar(50) varchar(100) varchar(200) char(20) varchar(100) int datetime not null null null null null null null null null null null
表4.2 博客文章类别表(Class)
字段名 数据类型 主键 主键 是否为空 备注 唯一的ID ClassID ClassName
int text not null null 表4.3 博客文章表(Content)
字段名 数据类型 主键 主键 附键 是否为空 备注 唯一的ID B_id B_title B_author Class_id B_content B_click B_img B_time
int text char(10) int text char(10) nvarchar(50) datetime not null null null null null null null null -22-