我懇請專家幫忙,可能是資料庫設計者或管理者。
我在為兩個表設定引用完整性時遇到了這個問題,設定引用完整性不是問題,但我面臨的挑戰是,當我完成設定此引用完整性時,它不允許另一個表中存在空值這意味著兩個表應該包含可能相同的編號。使兩個表對應的行數
這正是我想要做的事情的一個例子:
- 我正在建立表,一個名為“Stock”,用於儲存商店中可用的商品或配件,另一個表名為“Customer_Details”
- 我想在兩個欄位中設定一個欄位(即名為“可用性”的欄位),該欄位將是是/否資料類型,該欄位應該出現在兩個欄位中
- 每當客戶購買從「庫存」表中選擇的特定配件時,它都會自動更改庫存中「可用性」欄位的值,
我所知道並且一直在嘗試做的就是在關係視窗中設定引用完整性,但不幸的是,這不起作用,
由於我是 2007 年的新手,所以我懇請有人能指導我如何解決這個問題。
答案1
“我面臨的挑戰是,當我完成設定引用完整性後,它不允許在另一個表中出現空值”
Nul
允許值,但有限制:
但是,您可以在外鍵中輸入 Null 值。這指定記錄不相關。例如,您不能將訂單分配給不存在的客戶。但是,您可以透過在 CustomerID 欄位中輸入 Null 值來將訂單指派給任何人。
參照完整性
參照完整性是一個規則系統,Access 使用它來確保相關表中的記錄之間的關係有效,並且您不會意外刪除或更改相關資料。當滿足以下所有條件時,您可以設定引用完整性:
- 主表中的符合欄位是主鍵或具有唯一索引。
- 相關欄位具有相同的資料類型。有兩個例外。自動編號欄位可以與 FieldSize 屬性設定為長整型的數字欄位相關,而 FieldSize 屬性設定為複製 ID 的自動編號欄位可以與 FieldSize 屬性設定為複製 ID 的數字欄位相關。
- 兩個表屬於同一個 Access 資料庫。如果表是連結表,則它們必須是 Access 格式的表,並且必須開啟儲存它們的資料庫來設定參考完整性。無法對其他格式的資料庫中的連結表強制執行引用完整性。
使用引用完整性時,適用下列規則:
- 您無法在關聯表的外鍵欄位中輸入主表主鍵中不存在的值。但是,您可以在外鍵中輸入 Null 值。這指定記錄不相關。例如,您不能將訂單分配給不存在的客戶。但是,您可以透過在 CustomerID 欄位中輸入 Null 值來將訂單指派給任何人。
- 如果相關表中存在符合記錄,則無法從主表中刪除記錄。例如,如果「訂單」表中存在分配給員工的訂單,則無法從「員工」表中刪除該員工記錄。
- 如果該記錄具有相關記錄,則無法變更主表中的主鍵值。例如,如果「訂單」表中存在分配給該員工的訂單,則您無法變更「員工」表中的員工 ID。