日期:2014-05-17  浏览次数:20395 次

关于数据表之间的关系的一个疑问
大家好,我刚接触数据库,有很多地方需要学习。

现在我想请教一个问题,就是我给数据库的各个表之间建立了关系之后,它有什么用处呢?除了能够清楚地表明各表之间关系。


------解决方案--------------------
这……好难解释哦。除了关系,应该还有减少冗余吧
------解决方案--------------------
还可保证数据的完整性(比如外键)
------解决方案--------------------
主要是希望 由数据库系统自动维护和检查这些约束条件

不过,实际使用也许是另一回事了。。。。
------解决方案--------------------
可以减少数据冗余,增加数据的统一性,保持各表间的数据一致.利于你对数据的维护.
数据库规范化是很必要的,你可以参考数据库原理方面的书。
------解决方案--------------------
怎么说呢?表关系的关联,其实主要还是一个引用的完整性,在做小项目时用处很大,可以防止误删或者添加了无用的数据。特别是父子表,描述表时,就象职位,存在一个职位表中,国家,存在国家表中,别的表引用时,就能减少冗余,在删除这些基础表时,还能检查是不是有别的表在使用,就是所谓的外键。

其实编程就是一个先立后破的过程,首先,你要先完全按照这个规则去后,之后,再违反这个规则。

因为,当程序大的时候,你会发现,太多的关联设置没必要,但这是基于你对表的理解,还有程序的严谨性,不然,多个表关联时,你少一个表没关联到,可能就会让你焦头烂额“怎么数据总显示不出来?”

BTW,我是尽量不用(即在数据库层面设置表关联),还有就是,PeopleSoft的ERP,也没有在数据库层面设置关联。
------解决方案--------------------
各个表之间建立了关系之后,除了明确各个表之前的关系外,这种关系,就像是现实世界中的各种联系一样。


此外,主要就是来起到约束的作用。

比如a、b两个表。

a是主表,b是附表。

a:
aid,name

b:
id,aid,xx

那么这里的b表的aid就是起到和a表中的aid的关联作用,也就是a和b直接的联系。

同时,b表的aid的值,都要来源于a表的aid,所以就起到了一种约束的作用。