我在所有数据库是新的,有在MS Access设置3和表之间的关系有些困难2013年在MS Access
的想法是,我有账户信息表,表与此帐户相关的呼叫以及包含所有可能的呼叫响应的一个表格。我尝试了不同的组合,但没有任何效果。
- 1st table - Accounts:AccountID(PK)| AccountName |语言|国家|电子邮件
- 第二个表格 - Calls:CallID(PK)|帐户|响应|评论|日期
- 第三表 - 响应:ResponseID(PK)|响应
我在所有数据库是新的,有在MS Access设置3和表之间的关系有些困难2013年在MS Access
的想法是,我有账户信息表,表与此帐户相关的呼叫以及包含所有可能的呼叫响应的一个表格。我尝试了不同的组合,但没有任何效果。
当您有一个表时,它通常有一个主键字段,它是该表的主索引。为了让您将其与其他表连接起来,通常通过在另一个表上设置外键来实现。
假设你有Accounts
表,并且它有AccountID
字段作为主键。该字段是唯一的(意味着该字段没有重复值)。
现在,您有另一个表Calls
,您在那里有一个外部关键字字段AccountID
,它指向Accounts
表。
基本上你有Accounts
具有以下数据:
AccountID| AccountName | Language | Country | Email
1 | FirstName | EN | US | [email protected]
2 | SecondName | EN | US | [email protected]
现在你有其他的表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(在我的例子帐户ID = 1),以多次调用(在我的例子2行与帐户ID = 1为外键,行1 & 2)和帐户ID = 2也具有2行的呼叫的(行3和4)
也是一样的Responses
表
这很好,它对我来说非常适合,但是当我尝试创建这种关系时(表格Accounts和Calls之间),我得到了错误消息“关系必须在具有相同数据类型的相同数量的字段上”。我检查两种数据类型,他们是“数字”。另外,让我提及目前呼叫表是空的。还有最后一件事,如果我想在通话表中输入一个账户,我可以做什么,而不是通过号码,而是账户名称。 –
调用中的字段应该是长整数类型,并且帐户中的PK字段应该是自动编号类型 – Leon
谢谢leonid,我想我理解了这个概念,现在一切正常。还有一件事我正面临着。我想知道如何在'Calls'表中输入一个新的实体,而不是使用AccountID,而是使用账户名称(理由:更容易使用名称而不是数字)并保持当前关系? –
使用该表的结构:
Accounts : AccountID(PK) | AccountName | Language | Country | Email
Calls : CallID(PK) | AccountID(FK) | ResponseID(FK) | Comment | Date
Responses: ResponseID(PK) | Response
谢谢你的回答和解释Palec,+1。我向你致以谢意,但现在我有了新的“爬山”。 –
实际上定义 Access中的关系打开关系窗口...
...然后按照详细说明这里:
How to define relationships between tables in an Access database
你能解释一下你的 '关系' 是什么意思?你想在其他表中设置外键的主键吗? – Leon
我想我有FK和PK的想法(如果不是,请纠正我),但我的意思是不同领域之间的关系。例如:(第一张桌子)AccountID-(第二张桌子)帐户:一对多。 –