3.3.1 面向对象与关系数据库的对应关系的设计
关系数据库就是采用关系模型的数据库,关系模型用二文表结构来表示各种实体及其间的联系。二文表由行和列组成,每一行为一个月组或记录,每一列为一个属性或字段。一个关系数据库可由多张表组成。
对于每一张表,都需要一个或一组能唯一的确定其中个元组的属性,每个这样的属性或属性组,叫做该表的一个候选关键字,对于一张表,要制定一个候选关键字作为该表的主关键字(也称为主键)。
在访问表时,可能需要把表连接起来,把用于连接表的关键字称为外键,外键是一张表中的一个属性,同时也是另一张表的主关键字。主键和外键的对应是表示表间关系的唯一方法。面向对象数据库是采用面向对象模型的数据库。它有两方面的特征:一方面,它是面向对象的,应支持对象、类、操作、属性、继承、聚合、关联等面向对象概念;另一方面,它也具有数据库所对应具有的特性和功能。由于面向对象数据库与使用面向对象方法开发的应用系统都采用了面向对象模型,对类图中的类及关系不需要在进行数据模型的转换,即可直接进行永久对象的存储与检索。也不需要在设计负责保存与恢复其他类的对象的类,因为每个类的对象都可以直接在面向对象的数据库系统中存取。
3.3.2 数据表设计
对每个需要存储的永久类,应分别用一个表进行存储,具体的做法如下:
⑴ 列出一个永久类的所有需要存储的属性。
⑵ 按时间与空间要求进行权衡,对这些属性进行规范化,规范化后的属性至少应满足第一范式。
⑶ 定义数据库表。把规范化之后的一个属性作为表的一个列,要存储的每一个对象实力作为表中的一行。
面向对象与关系数据库之间的对应关系为:面向对象中的类、对象、属性、关系,分别对应关系数据库中的表、行、列、表。实体关系分别是:实体类型,实体实例,属性,关系。根据以上面向对象与关系数据库之间的联系,对永久类的存储设计的要求,经过分析,本系统所需要的数据库表已大致确定如下:
表3.7、-NEWS数据库包含的数据表及其功能
数据表 功能
UserSheet 存放用户员基本信息
newssclassInfo 存放新闻类别基本信息
newsInfo 存放新闻基本信息
discussInfo 存放新闻评论基本信息
表3.8、用户基本信息表UserSheet
字段名 数据类型 长度 说明 备注
Code 自动编号 4 管理员ID号 设为主键且自动编号
LoginName 文本 20 管理员账号 不允许为空
UserPass 文本 20 管理员密码 不允许为空
Birth 日期/时间 50 生日 允许为空
UserName 文本 20 用户真实姓名 不允许为空
PassQuestion 文本 20 密码提示问题 不允许为空
PassAnswer 文本 20 密码答案 不允许为空
Sex 文本 10 性别 允许为空
guanliyuan 数字 10 管理权限 允许为空
submit_date 日期/时间 10 更新时间 默认住getdate()
表3、板块信息表newssclassInfo
字段名 数据类型 长度 说明 备注
classid 自动编号 4 板块编号 设为主键且自动编号
classtitle 文本 50 版块名称 不允许为空
表3.9、新闻信息表newsInfo
字段名 数据类型 长度 说明 备注
newsid 自动编号 4 新闻编号 设为主键且自动编号
clsaaid 自动编号 4 所属板块编号 不允许为空
ntitle 文本 50 新闻标题 不允许为空
ncontent 文本 255 新闻内容 不允许为空
newstime 时间/日期 8 添加/修改时间 默认值getdate()
newsclilk 数字t 4 单击次数 允许为空
Author 文本 10 作者 允许为空
表3.10、评论信息表discussInfo
字段名 数据类型 长度 说明 备注
discussed 自动编号 4 评论编号 设为主键且自动编号
newsid 自动编号 4 评论的新闻编号 不允许为空
dcontent 文本 225 评论内容 不允许为空
discusstime 日期/时间 8 添加/修改时间 默认值getdate()
3.4 小结
本章介绍了新闻发布的网站系统的问题域部分的设计、人机交互部分的设计、数据库管理部分的设计。从这三个方面详解本系统,充分体现了面向对象的设计思想,设计围绕着对象进行。数据库的设计是该部分设计的重点内容,它的属性,表之间的关系将对以后实施阶段产生重要的影响。所以说数据库设计的好与坏直接影响整个系统的优劣。接下来的工作就是要对系统进行代码的编写,在编写代码的原则中,非常重要的一点就是可扩充性,易读性。
上一页 [1] [2] [3] [4] [5] [6] [7]