0

我想将表 DRG 与表 DAT 以 1 对 n 的形式关联起来。

ID    Day    Month    Year    ForeignKeyDRG
1     01     April    1983    ?
2     07     June     2005    ?
..    ..     ..       ..

表 DAT

DAT 代表“日期”,包含对我来说相关日期的列表。

From    To
foo     bar
..      ..

表背根

没关系 DRG 代表什么,它只是一个带有值的任意表(实际上它代表“DateRanGe”,但该示例在语义上并不是这样,所以我们假设它是具有唯一限定每个条目的两个字段的任何东西。 )

我不想在 DRG 中引入第三个字段 ID,但希望有一个 From 和 To 的组合键。如何告诉 MS-Access 将该组合用作表 DAT 中的外键?

4

1 回答 1

1

我不想在 DRG 中引入第三个字段 ID

您可能应该解释为什么您不想要第三个字段。假设您的 DRG 表没有其他字段,答案是您需要第三个字段,否则您不妨将 From To 字段移到 DAT 表中。表使用主键到主键(一对一关系)或主键到外键(一对多关系)相互链接。可以使用组合键,其中两个字段组合起来创建一个主键,但我不经常看到它们在关系中使用,尽管它可能是可能的。在您的特定情况下,将一无所获,实际上尝试这样做是很荒谬的,因为您需要两个表中的 From 和 To 字段才能形成关系。

有很多数据库人员说每个表都应该始终具有一个自动递增的数字 ID 字段,因为它是主键。几年来,我一直在断断续续地进行数据库编程,我自己真的开始朝着这个方向前进。拥有复合键通常没有意义。如果您想防止两个记录在两个字段中具有相同的值,您始终可以创建一个包含这两个字段的唯一索引。

于 2013-09-26T02:28:30.207 回答