浅谈数据库建表
来源:互联网 发布:com域名续费价格 编辑:程序博客网 时间:2024/05/22 06:18
本文参照 'http://blog.csdn.net/lovegod12/article/details/3986346'
对数据库的建表还不是特别熟悉,一下将自己的一些新的认识予以总结:(具体内容可参照原文)
1.主键的作用:
PK是供程序员使用的表间连接工具,可以是一无物理意义的数字串, 由程序自动加1来实现。也可以是有物理意义的字段名或字段名的组合。不过前者比后者好。当PK是字段名的组合时,建议字段的个数不要太多,多了不但索引占用空间大,而且速度也慢。
2.正确认识数据冗余
主键与外键在多表中的重复出现, 不属于数据冗余,这个概念必须清楚,事实上有许多人还不清楚。非键字段的重复出现, 才是数据冗余!而且是一种低级冗余,即重复性的冗余。高级冗余不是字段的重复出现,而是字段的派生出现。
3. 要善于识别与正确处理多对多的关系
若两个实体之间存在多对多的关系,则应消除这种关系。消除的办法是,在两者之间增加第三个实体。这样,原来一个多对多的关系,现在变为两个一对多的关系。要将原来两个实体的属性合理地分配到三个实体中去。这里的第三个实体,实质上是一个较复杂的关系,它对应一张基本表。一般来讲,数据库设计工具不能识别多对多的关系,但能处理多对多的关系。
4.中间表、报表和临时表
中间表是存放统计数据的表,它是为数据仓库、输出报表或查询结果而设计的,有时它没有主键与外键(数据仓库除外)。临时表是程序员个人设计的,存放临时记录,为个人所用。基表和中间表由DBA维护,临时表由程序员自己用程序自动维护。
5.“三少原则”
(1) 一个数据库中表的个数越少越好。只有表的个数少了,才能说明系统的E--R图少而精,去掉了重复的多余的实体,形成了对客观世界的高度抽象,进行了系统的数据集成,防止了打补丁式的设计;
(2) 一个表中组合主键的字段个数越少越好。因为主键的作用,一是建主键索引,二是做为子表的外键,所以组合主键的字段个数少了,不仅节省了运行时间,而且节省了索引存储空间;
(3) 一个表中的字段个数越少越好。只有字段的个数少了,才能说明在系统中不存在数据重复,且很少有数据冗余,更重要的是督促读者学会“列变行”,这样就防止了将子表中的字段拉入到主表中去,在主表中留下许多空余的字段。所谓“列变行”,就是将主表中的一部分内容拉出去,另外单独建一个子表。
6.优化
据库系统级优化、数据库设计级优化、程序实现级优化
- 浅谈数据库建表
- 数据库表结构设计浅谈
- 数据库表结构设计浅谈
- 数据库表结构设计浅谈
- 浅谈数据库用户表结构设计
- 数据库浅谈
- (转)浅谈数据库分表
- delphi连接数据库浅谈
- 浅谈数据库的攻击
- 浅谈数据库设计技巧
- 浅谈数据库设计技巧
- 浅谈数据库设计技巧
- 浅谈数据库设计技巧
- 浅谈数据库设计技巧
- 浅谈数据库设计技巧
- 《浅谈数据库设计技巧》
- 浅谈数据库设计技巧
- 浅谈数据库设计技巧
- zigbee LED程序及串口程序
- codeigniter源码分析-核心文件CodeIgniter.php
- 坑爹的问题 Interesting facts about yourself
- 伪装得再坚强、始终还是掩饰不了内心的脆弱
- 数据库设计三大范式
- 浅谈数据库建表
- 统计入门
- 好久没来了!
- c++ stl library 学习(1)
- 线程下变量-原子操作 __sync_fetch_and_add
- 问心无愧的伤感爱情日志分享:我爱你,到底值不值得
- Linux内核启动过程和Bootloader
- Windows 8 Metro 应用开发入门(一):开发环境介绍
- 何时使用对话框