日期:2014-05-16  浏览次数:20998 次

一对多 一对一这些在编程里的是指什么?
我会些vb.net, 现在刚接触access。
请问数据库里的表之间,一对多,一对一,这些在编程里对应的是什么?

我以前用数据库,只管建自己所需的表,然后查询,没考虑过什么一对多,一对一这些的东西。

是不是按照access所说的这些一对多,一对一这些表关系,使表更合理化,更易于查询。
也就是说没有这些关系,数据库一样可以工作,只是不合理。

是不是这样?

哪位兄台帮解释一下一对多,一对一这些在编程里,带来怎样的好处?

------解决方案--------------------
引用关于 Access 数据库中的关系 (MDB)
在 Microsoft Access 数据库中为每个主题都设置了不同的表后,必须告诉 Microsoft Access 如何再将这些信息组合到一起。该过程的第一步是定义表间的关系,然后可以创建查询、窗体及报表,以同时显示来自多个表中的信息。例如,下面的窗体包含了来自四个表的信息:



“客户”表

“订单”表

“产品”表

“订单明细”表

关系的工作方式

在前一个示例中,四个表中的字段必须是互相协调的,这样它们才能显示有关相同定单的信息。这种协调是通过表之间的关系来实现的。关系通过匹配键字段中的数据来建立,键字段通常是两个表中使用相同名称的字段。在大多数情况下,两个匹配的字段中一个是所在表的主键,对每一记录提供唯一的标识符,而另一个是所在表的外键。例如,通过创建“雇员ID”字段之间的关系,以使雇员和他们负责的订单之间发生相应的关系。



雇员ID 出现在两个表中,一个是主键...

...一个是外键。

一对多关系

一对多关系是关系中最常用的类型。在一对多关系中,A 表中的一个记录能与 B 表中的许多记录匹配,但是在 B 表中的一个记录仅能与 A 表中的一个记录匹配。



一个供应商...

...可以提供多种产品...

...但每种产品只由一个供应商提供。

多对多关系

在多对多关系中,A 表中的记录能与 B 表中的许多记录匹配,并且在 B 表中的记录也能与 A 表中的许多记录匹配。此类型的关系仅能通过定义第三个表(称作联结表)来达成,它的主键包含二个字段,即来源于 A 和 B 两个表的外键。多对多关系实际上是和第三个表的两个一对多关系。例如,“订单”表和“产品”表有一个多对多的关系,它是通过建立与“订单明细”表中两个一对多关系来创建的。一份订单可以有多种产品,每种产品可以出现在多份订单中。



“订单”表中的主键

“产品”表中的主键

一份订单可以有多种产品...

...每种产品可以出现在多份订单中。

一对一关系

在一对一关系中,A 表中的每一记录仅能在 B 表中有一个匹配的记录,并且 B 表中的每一记录仅能在 A 表中有一个匹配记录。此关系类型并不常用,因为大多数以此方式相关的信息都在一个表中。可以使用一对一关系将一个表分成许多字段,或因安全原因隔离表中部分数据,或存储仅应用在主表中的子集的信息。例如,可以创建一个表来追踪参加募捐足球赛的雇员。“足球队员”表中的每个足球队员在“雇员”表中都有一个相匹配的记录。



每个足球队员在“雇员”表中都有一个相匹配的记录。

该值集是“雇员ID”字段和“雇员”表的子集。