0

我完全是数据库新手,在 MS Access 2013 中设置 3 个表之间的关系时遇到了一些困难。

这个想法是我有一个包含帐户信息的表格,一个包含与此帐户相关的呼叫的表格,还有一个包含所有可能的呼叫响应的表格。我尝试了它们之间的不同组合,但没有任何效果。

  • 第一个表 - 帐户:AccountID(PK) | 账户名 | 语言 | 国家 | 电子邮件
  • 第二张表 - 呼叫:CallID(PK) | 帐户 | 回应 | 评论 | 日期
  • 第 3 个表 - 响应:ResponseID(PK) | 回复
4

3 回答 3

1

当你有一个表时,它通常有一个主键字段,它是表的主索引。为了让您将其与其他表连接,您通常通过在其他表上设置外键来实现。

假设你有你的Accounts表,它的AccountID字段作为主键。该字段是唯一的(意味着该字段没有重复值)。

现在,您调用了另一个表,并且在那里Calls调用了一个外键字段AccountID,它指向该Accounts表。

基本上你有Accounts以下数据:

AccountID| AccountName | Language | Country | Email 

  1      | FirstName   | EN       | US      | some@email.com
  2      | SecondName  | EN       | US      | some@email.com

现在你有另一个表Calls很多电话

CallID(PK) | AccountID(FK) | ResponseID(FK) | Comment   | Date

  1        | 1             | 1              | a comment | 26/10
  2        | 1             | 1              | a comment | 26/10
  3        | 2             | 3              | a comment | 26/10
  4        | 2             | 3              | a comment | 26/10

您可以看到一对多关系:一个 accountID(在我的示例中 AccountID=1)到多个呼叫(在我的示例中,2 行 AccountID=1 作为外键,第 1 行和第 2 行)并且 AccountID=2 也有 2 行调用(第 3 行和第 4 行)

Responses桌子也一样

于 2013-10-27T17:07:42.093 回答
0

使用这个表结构:

Accounts : AccountID(PK) | AccountName | Language | Country | Email 
Calls    : CallID(PK) | AccountID(FK) | ResponseID(FK) | Comment | Date
Responses: ResponseID(PK) | Response
  • Accounts.AccountID 由 Calls.AccountID 引用。1:n – 一个帐户可以进行多次调用,但每次调用只涉及一个帐户。
  • Responses.ResponseID 由 Calls.ResponseID 引用。1:n——许多调用可以从准备好的集合中得到相同的响应,但每个调用都得到其中一个。
于 2013-10-27T17:10:23.497 回答
0

要在 Access 中实际定义关系,请打开关系窗口...

关系.png

...然后按照此处的详细说明进行操作:

如何在 Access 数据库中定义表之间的关系

于 2013-10-27T17:15:49.597 回答