2012-10-16 158 views
1

我期待創建一個數據庫系統,幫助保持我正在組織的項目。我的目標是爲每個項目創建一張表格,從中我可以找出我處理的人員以及我爲該項目所做的工作。MS Access中的組合字段主鍵?

我看到它的方式是該項目可以包含多個內容並且該內容可以由多個客戶端提交,但是一個客戶端不會被限制在僅處理一個項目。

因爲事情會變得複雜,我現在將包括我提議的表格設計的圖片。

proposed tables for database

在MS Access我能打開項目表,點擊+,看看誰在該項目(客戶表)的工作,然後在另一+查看每個用戶提交的工作(內容表)。例如。

Projects Table: id 1, project #1, client #1 
    + Clients Table: id 1, client #1, user #1 
      + Content Table id 1, Project #1, Logo Design, Client #1 
          id 2, Project #1, Create Website, Client #1 
     Clients Table: id 2, client #2, user #2 
        id 3, client #3, user #3 

我去的時候添加相關的第二個客戶端就告訴我,有數據重複,或沿着這些線路的東西的第三個項目。

我覺得解決方法是將項目名稱和客戶端名稱鏈接在項目表中,這樣,如果我可以有2個或更多客戶端與一個項目關聯,但是阻止將客戶端分配給同一個項目兩次。它也應該允許我將一個客戶分配給多個項目。

只要不存在相同的項目名稱和客戶端名稱的情況下,應該接受數據

所以我的問題是,是我soloution正確的,如果是的話我怎麼impliement呢? 我是否正確地處理事情?

我希望我輸入的內容能讓某些人對某人感興趣,並且有人可以爲我提供一些幫助/建議。

乾杯 本

回答

1

這聽起來像你描述項目和客戶之間的許多一對多的關係。在這種情況下,標準方法是爲項目建立一個表格,爲客戶建立另一個表格,然後爲每個項目/客戶端組合搭配一個交匯點表格。

在聯結表中的項目加客戶端添加一個唯一約束(索引),以便它將只接受同一項目/客戶端對的一行。您可以使用複合主鍵來滿足唯一約束。

+0

感謝指針,我花了一些時間來充分發揮我的頭腦,但我認爲我現在有一個公平的想法:) –