Foreign-Key

使用查找嚮導創建外鍵關係或使用關係視窗之間有什麼實際區別嗎?

  • December 3, 2019

我對 Access 很陌生,所以如果這是一個基本主題,我將不勝感激。

我正在創建很多需要連結的表。我有兩張表,Keyword 和 KeywordOrthography。KeywordOrthography 有一個 KeywordFK 欄位連接到 Keyword.ID 欄位。

據我所知,有兩種方法可以將 KeywordFK 連接到 KeywordID:

  1. 進入關係視窗,將關鍵字“ID”拖到“KeywordFK”,創建一對多關係(強制參照完整性。)
  2. 清除兩個表之間的任何現有關係,進入表設計視圖,然後在 KeywordFK 欄位中,選擇查找嚮導。選擇從另一個表中獲取值,並從關鍵字中導入 ID 欄位。然後,當我在 KeywordOrthography 中輸入新記錄時,我可以從現有的​​關鍵字中選擇輸入。

兩種方法都與表建立一對一的關係,第二種方法更容易手動輸入新記錄,但我不確定在添加新記錄時使用 SQL 或其他方法是否會導致任何復雜性。另一方面,第一種方法在連結表時要快得多。

問題是:這些方法是否與我預先假設的一樣?以一種方式或另一種方式這樣做有優勢嗎?

通過關係窗格創建關係做了一件事:它創建了一個關係(顯然)。

相比之下,查找嚮導可以做多種事情:

  • 創建關係(與通過關係窗格創建的關係相同)
  • 向表中添加一個欄位,將該欄位設置為基於儲存外鍵的關係的組合框(您也可以在表設計視圖中手動執行此操作,但它不那麼直覺)
  • **危險:**使該欄位成為多值欄位,以便您可以在一行中儲存多個鍵

如果使用最後一個選項,遷移時會遇到麻煩,因為其他數據庫通常不支持多值欄位。此外,多值欄位通常是一團糟,需要進一步處理,我強烈建議不要使用它們。

第二個選項也會造成一些混亂,因為顯示的數據(來自連結記錄的數據)不等於儲存的數據(外鍵)。這可能會在嘗試查詢/過濾/導出數據時導致意外行為(因為有時您對顯示的數據進行操作,而其他時間對儲存的數據進行操作),但在遷移它時並不是真正的問題(因為它只是遷移外鍵)。不過,您可能需要在遷移後重新應用組合框設置。

引用自:https://dba.stackexchange.com/questions/254430