MS Access中表之间的关系

时间:2013-10-27 16:43:39

标签: database ms-access relationship

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

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

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

3 个答案:

答案 0 :(得分: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

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

Responses

也是如此

答案 1 :(得分: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 - 许多调用可以从准备好的集合中获得相同的响应,但每次调用只能获得其中一个。

答案 2 :(得分:0)

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

Relationships.png

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

How to define relationships between tables in an Access database