2012-06-01 59 views
0
中需要相關記錄

我對Access相當陌生。您無法添加或更改記錄,因爲表

我有一個需要規範化的數據庫表。我有關於一個人的一些信息。這些人有權授權訪問我們工作場所的區域。每個人都可以多次授權管理不同的區域,當然也可以授權不同的人管理不同的區域。我的第一個嘗試是將授權和區域包括在一起,但是我意識到我真的在重複這些數據。做了一些研究之後,我決定,要做到這一點的最好辦法是建立4桌

tblPerson,tblPermission,tblArea,tblArea_Permission

的tblArea_Permission是tblPermission之間的許多一對多關係的連接表tblArea(這是我剛剛瞭解到的)。我似乎在關係選項卡上設置了表關係確定。我還使用查詢將記錄添加到連接表中。當我嘗試這樣做時,使用從表中獲取記錄的查詢,我得到「您無法添加或更改記錄,因爲表XXX中需要相關記錄。」這似乎是不可能的。

我決定可以和DB一起生活,不強制實施參照完整性,並將其刪除,併爲兩條記錄使用組合主鍵,因爲每個有權限的人都只能以一種組合方式控制區域。這似乎工作,但後來我發現記錄會隨機更改。我決定數據庫必須是腐敗的。數據庫部分似乎正常工作,所以我開始使用新數據庫並導入表和一個表單,然後開始重新構建新表,如上所述。我得到了同樣的錯誤。

任何幫助將不勝感激。我已經閱讀了一些不同的書籍,並使用谷歌,但沒有解決這個問題。

回答

1

如果一個人被授權管理的領域,你需要一個persons_area表:

PersonID) Primary key 
AreaID ) 

這都說明哪些地區的人可以管理。我不確定權限表來自哪裏。

然後,您將無法向person_areas表添加記錄,除非您在區域表中有一個ID,在persons表中有一個ID。如果這些ID中的任何一個都丟失了,你會得到上面的錯誤。

如果您需要更多關於您的數據庫設計的相關評論,您將需要發佈模式。

相關問題