2011-08-15 37 views
0

我試圖找出使用Access 2010規範化以下數據集的最佳方法。我應該如何標準化這張桌子?

我正在構建一個數據庫以跟蹤一組工作人員的數據輸入。他們正在閱讀文件,這些文件的地圖上有安裝作業的代碼編號以及這些作業的相關信息,並將這些項目輸入到數據庫中。從每個文檔收集的代碼編號有兩種主要類型。目前我已將他們的所有數據寫入平板電腦。我有以下字段(*表示該字段可以爲空):

  • workerID:工人的ID號
  • documentID:與每個文檔
  • work_date關聯的唯一字符串:日期工人輸入此數據
  • code1:第一種代碼編號
  • * code1Year:與編碼1相關的安裝一年
  • * code1Type:字符串編碼1的作業類型
  • * code1Loc1:爲編碼1地址號(1型)
  • * code1Loc2:地址號對於代碼1(2型)
  • * code1Loc3:用於CODE1地址號(類型3)
  • 共DE2:碼數第二類型
  • 組ID:會員資格組代碼
  • code1verified(可與代碼1或代碼2中使用):表示代碼1和其相關聯的信息已經被作爲正確驗證的布爾標誌從文檔
  • code2verified轉錄:這表明碼2和其相關的信息已經爲正確地從文件轉錄驗證布爾標誌

這是我的正常化計劃:

  • 表名:(PRIMARY_KEY),(foreign_key),字段1,字段2 ...
  • 工人:(WORKER_ID)
  • 組:(GROUP_ID)
  • code1Type:(CODE1TYPE_ID),code1Type
  • 工作日:(WORKDAY_ID),(worker_id),work_date
  • locTypes:(LOC_ID)的locationType
  • CODE1:(cODE1_ID),(workday_id),代碼1,(code1Type_id),(GROUP_ID),code1verified
  • code1Loc:(CODE1LOC_ID),(code1_id),(loc_id),code1Loc
  • code1Year:(CODE1YEA R_ID),(code1_id),code1Year
  • 碼2:(CODE2_ID),(GROUP_ID),(workday_id),碼2,code2verified

這是涉及這些值彼此最好的方法是什麼?

回答

0

沒有真正瞭解數據,我可以說最好的是它需要一些工作。

我推測code1Year,code1Typecode1Loc*也不編碼在code1

我想你會還需要一個表來存儲你已經讀入的行,它可能只是這樣的:

  • map_table:(MAP_ID),WORKER_ID,GROUP_ID, WORKDAY_ID,CODE1_ID,CODE1LOC_ID,CODE1YEAR_ID,CODE2_ID

我會考慮丟棄單獨的表CODE1YEAR,因爲它應該只是一個整數,你要多久2009年重新標記年到別的東西。與WORKDAY_ID一樣,爲什麼不把它作爲日期字段。

這不是明顯,我爲什麼代碼1和代碼2包括group_idworkday_id

而且WORKER_IDGROUP_ID似乎那種光禿禿的,除非僅被用於標識的驗證他們

+0

我想'code1year'需求它自己的表,因爲一個'code1'值可以有多個'code1year'值。同樣,「workDays」表的要點是列出每個員工工作的所有日子,以便工作日/工人對可以與當天員工輸入的所有行相關聯。 – sigil

+0

考慮過了,我會接受你的答案,因爲map_table的想法。將它作爲臨時表將非常有用,而且我正在試圖弄清楚如何在沒有人的情況下過關。 – sigil