2014-02-07 75 views
0

我想基於一個表(父表)創建幾個表:想法是所有子表的前3列將與父表和每個子表相同表格提供了更多的信息。無論在父表中進行的更改都會反映在子表中。例如,如果父表中的前一行是哈利True Happy更改爲Harry True Sad,則子表也將更改。同樣,如果父表中的記錄被刪除,子表中的對應行也將被刪除。父表中的新記錄被創建,子表也將生成反映更新的一行記錄。訪問一對一關係表

我認爲Access中的一對一關係將是實現這一目標的好方法。這是可行的,因爲我對數據庫沒有太多理論上的理解。謝謝。

回答

0

是的,這正是關係應該如何工作,以便您不必在每個相關表上重複3列。

Parent 
ID(PrimaryKey) C1 C2 C3 

Child1 
ID(PrimaryKey) C4 C5 

Child2 
ID(PrimaryKey) C6 C7 

至於刪除,還有的正是CASCADE DELETE你的目的的選項,如果選中Enforce Referencial Integrity框。

然而,無論關係是1比1還是1比N,在很大程度上取決於您正在構建的數據庫。

如果它是1對1,對於相同的記錄,主鍵應該是相同的。否則,您應該在子表中包含RelatedParentId (ForeignKey)字段。

Table View Mode Relationship

+0

你好,我測試了更新和刪除同步可以通過這個來完成。但是,當我們在父表中創建一條記錄時,是否可能在子表中自動生成一行(其餘列保留爲空)?總之,無論如何,我希望父表和子表中的共享列完全相同。 – user3113633

+0

使用關係時,實際上沒有共享列。在1對1關係中,如果您在一個表中創建記錄,則會在其左側看到一個(+)按鈕,允許您將數據添加到另一個表中。看到我編輯的答案爲圖片。通常,訪問以多種方式支持這些關係,即主 - 子鏈接表單。 – parakmiakos