2013-10-27 71 views
0

我在所有數據庫是新的,有在MS Access設置3和表之間的關係有些困難2013年在MS Access

的想法是,我有賬戶信息表,表與此帳戶相關的呼叫以及包含所有可能的呼叫響應的一個表格。我嘗試了不同的組合,但沒有任何效果。

  • 1st table - Accounts:AccountID(PK)| AccountName |語言|國家|電子郵件
  • 第二個表格 - Calls:CallID(PK)|帳戶|響應|評論|日期
  • 第三表 - 響應:ResponseID(PK)|響應
+0

你能解釋一下你的 '關係' 是什麼意思?你想在其他表中設置外鍵的主鍵嗎? – Leon

+0

我想我有FK和PK的想法(如果不是,請糾正我),但我的意思是不同領域之間的關係。例如:(第一張桌子)AccountID-(第二張桌子)帳戶:一對多。 –

回答

1

當您有一個表時,它通常有一個主鍵字段,它是該表的主索引。爲了讓您將其與其他表連接起來,通常通過在另一個表上設置外鍵來實現。

假設你有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

+0

這很好,它對我來說非常適合,但是當我嘗試創建這種關係時(表格Accounts和Calls之間),我得到了錯誤消息「關係必須在具有相同數據類型的相同數量的字段上」。我檢查兩種數據類型,他們是「數字」。另外,讓我提及目前呼叫表是空的。還有最後一件事,如果我想在通話表中輸入一個賬戶,我可以做什麼,而不是通過號碼,而是賬戶名稱。 –

+0

調用中的字段應該是長整數類型,並且帳戶中的PK字段應該是自動編號類型 – Leon

+0

謝謝leonid,我想我理解了這個概念,現在一切正常。還有一件事我正面臨着。我想知道如何在'Calls'表中輸入一個新的實體,而不是使用AccountID,而是使用賬戶名稱(理由:更容易使用名稱而不是數字)並保持當前關係? –

0

使用該表的結構:

Accounts : AccountID(PK) | AccountName | Language | Country | Email 
Calls : CallID(PK) | AccountID(FK) | ResponseID(FK) | Comment | Date 
Responses: ResponseID(PK) | Response 
  • Accounts.Acco untID由Calls.AccountID引用。 1:n - 多個電話可能有一個帳戶,但每個電話只涉及一個帳戶。
  • Responses.ResponseID由Calls.ResponseID引用。 1:n - 許多呼叫可以從準備好的集合中得到相同的響應,但是每個呼叫只能得到其中的一個。
+0

謝謝你的回答和解釋Palec,+1。我向你致以謝意,但現在我有了新的「爬山」。 –