目前,我有48個字段。 正常化該數據庫時遇到問題
我完全不熟悉訪問。這就是我決定將所有東西連接在一起的方式。
它似乎並不十分有效。有人能幫我理解如何規範化這個數據庫嗎?
我是否應該嘗試將員工信息放在一個表中,在另一個表中填寫工作信息,然後獲得設備查找表?
目前,我有48個字段。 正常化該數據庫時遇到問題
我完全不熟悉訪問。這就是我決定將所有東西連接在一起的方式。
它似乎並不十分有效。有人能幫我理解如何規範化這個數據庫嗎?
我是否應該嘗試將員工信息放在一個表中,在另一個表中填寫工作信息,然後獲得設備查找表?
當前工作,上一份工作和上一份工作都可以同一張表。如果您按降序工作開始日期對此表進行排序,那麼您有當前,最後和前一個。因此,您不需要也不需要爲這些實際上相當於「工作」概念的每一個單獨的表格。如果按日期排序不夠,則可以添加一個名爲「作業類型」(當前,上一個等)的列。同樣,我們仍然只使用一張表。
設備也是如此。你真的不在乎這個限制是最後3還是最後300。通過構建規範化表格,ONE表單可以編輯所有類型,並且可以節省大量編碼和構建表格,用戶界面軟件以及構建quires以檢索+顯示錶單中最後3個作業。
事實上,您的設計與發展的成本最低允許3或300最後的工作是真的沒有什麼。更重要的是,如果某位經理出現並且現在希望您挽救最後的4個工作,那麼您不需要在這裏進行大規模的重新設計。你可以隨時添加新的工作類型。因此,取代當前的情況,如前所述,您也可能有未完成或失敗的工作。因此,添加新的業務規則意味着您不再添加新類型的作業表,而只是對已用於將作業定義爲當前或前一列的一列的「類型」。
您也可以有工作的開始/結束日期 - 當前的工作將是空白結束日期。 – citizenkong 2014-12-09 10:17:40
當你這樣做的時候,你將有一個正確的因式關係數據庫設計的開始。
您需要考慮各種實體,然後確定它們之間的關係。根據你所顯示的內容,我會在'員工'表中顯示當前信息;那麼就會有一個關於先前/當前工作的相關表格(設置一個表示當前的標誌);你不會提及設備是否與工作有關,所以我假設它是這樣的,從而創建一個設備表,並與員工或員工工作相關。 <踩肥皂箱>關係數據庫的功能不是消除冗餘......這是限制冗餘... – 2014-12-07 04:44:53
有沒有辦法將當前/過去的工作合併成一個關鍵?例如,有沒有辦法檢測日期是過去還是現在? – 2014-12-07 05:07:38
我建議每個表的'AutoNumber'鍵。這爲每個表中的每條記錄都保留一個唯一的標識符。然後看看一份工作的所有屬性 - 堅持當前但過去。這意味着'工作'表具有開始,結束,最低和最高工資,職位等。指示當前的一種方法是沒有結束日期,或者您可以有一個標誌表明「當前」,或者您可以使用最新的開始日期。將關係映射爲「一對一」或「一對多」。 1-1你可以考慮在一個表中包含字段,否則創建相關的表。 – 2014-12-07 05:18:35