数据库表的设计基础

数据库设计的三少原则:

1、  数据表的数目要少

2、  数据表的字段要少

3、  组合主键的字段要少

正确认识数据冗余:

数据冗余可以简单的分为低级冗余和高级冗余。低级冗余就是字段的重复出现;对于一个已经存在单价和数量的表总额就是高级冗余。低级冗余肯定要尽可能的避免,高级冗余牺牲空间提高速度。

数据表的分类:

         感觉这个对我的帮助挺大的,因为明白了分类之后才会有一个清晰的思路去设计数据表。数据表可以分为三类:基本表、中间表和临时表。

基本表:具有原始性,意思就是说,此表中的字段是原始数据(基础数据)的记录,另外网上的资料还提到了基本表具有原子性、演绎性、稳定性,我的理解就是基本表往往对应于最基本的实体,表的字段就是实体的属性。基本表往往都有主键约束。

         如:系统中的用户信息表、学生信息表就是基本表。

         中间表:是存放统计数据的,它是为数据的查询、报表的数据源、数据仓库服务。有时没有主键。

         如:日结账单、周结账单等就是中间表。

         临时表:是程序员设计的存放临时数据的表。

         如:在线信息表就是临时表。

         基表和中间表由DBA(DatabaseAdministrator)维护,临时表由程序员用程序自动维护。

正确处理多对多的表的关系:

         举例说明吧,图书馆系统管理中,“图书”和“读者”是两个基本的实体,具有多对多的关系,一本图书可以被不同的读者借阅,同一个读者可以同时借阅多本图书,但是具体的某一本书在某一时刻只能被一个读者借阅。未解决这样的多对多的关系,就需要引入一个“借阅”的实体类,包含一下属性,也就是借阅表中有一下字段,两个外键,图书和读者分别对应“图书号”和“读者号”两个表,另外还要有借阅时间、还书时间、图书当前是否借阅的状态。这样就通过增加“借阅”这个就解决了多对多的关系。

三范式:

         是数据库设计中很重要的原则,在以前的博客中已经做过总结,这里就不再赘述。

数据库的完整性:域完整性、用户定义完整性、参照完整性

         域完整性,是取值范围的限制;

参照完整性,定义不同关系表中列之间的关系,即外键与主键之间的引用规则,要求不能引用不存在的值,如果一个主键值发生变化,那么整个数据库中,对该值的所有引用都要统一进行更改。通过主键、外键、表级触发器来实现。

用户定义完整性,如,用户定义成绩取值范围为1—100,可通过触发器和存储过程实现。

 

        

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值