我想将表DRG与表DAT在1对n中联系起来。
ID Day Month Year ForeignKeyDRG
1 01 April 1983 ?
2 07 June 2005 ?
.. .. .. ..
表DAT
DAT代表“DATe”并包含我相关日期的列表。
From To
foo bar
.. ..
表格DRG
没关系DRG代表什么,它只是一个带有值的任意表(实际上它代表“DateRanGe”但是这个例子在语义上没有这样做,所以让我们假设它是两个具有唯一资格的字段的任何东西每个条目。)
我不想在DRG中引入第三个字段ID,但希望从From和To中获得一个组合密钥。如何告诉MS-Access在表DAT中将组合用作外键?
答案 0 :(得分:1)
我不想在DRG中引入第三个字段ID
你应该解释为什么你不想要第三个领域。假设您的DRG表没有其他字段,答案是您需要第三个字段,否则您也可以将From To字段移动到DAT表中。表使用主键到主键(一对一关系)或外键的主键(一对多关系)相互链接。可以使用复合键,其中两个字段组合以创建主键但我们经常看不到这些在关系中使用,尽管它可能是可能的。在你的特定情况下,没有任何东西可以获得,事实上,尝试这个是非常荒谬的,因为你需要两个表中的From和To字段才能形成关系。
有很多数据库人员都说每个表都应该有一个自动递增的数字ID字段作为它的主键。我已经连续几年一直在进行数据库编程了,而且我自己也开始朝着这个方向前进。拥有复合键通常没有意义。如果要防止在两个字段中都有两个具有相同值的记录,则始终可以创建包含两个字段的唯一索引。