2017-02-14 66 views
0

這是我第一次在這裏發佈,但絕對不是我第一次在這個網站上找到答案!IT資產跟蹤數據庫 - 規範化問題

我正在爲我們不斷增長的零售鏈創建IT資產跟蹤數據庫。我們已經評估了幾種不同的服務,但它們都不能滿足我們所有的需求 - 所以我們要去定製路線。最終,我們計劃使用SQL數據庫和Web前端,但現在,Access是最快捷地啓動和運行的一種方式。

我們正在追蹤不僅是在我們的商店資產,但正在使用的員工也資產。這些是我目前(即涉及到這個問題)的表:

  • 資產(型號,序列號等)
  • 位置(店鋪列表)
  • 員工(所有員工的列表)

在我最初的數據庫設計,我們只是跟蹤店資產。我有我的資產表和我的商店表,以及包含兩者的外鍵的AssetAssignment表。

如果我希望能夠將資產分配到任何一個商店或僱員,這將是對去這樣做的最佳方式?我應該創建一個StoreAssignments表和一個EmployeeAssignments表嗎?如果我這樣做,當試圖運行所有資產的報告/查詢時是否會變得更加複雜?

我應該建立某種形式的實體表,其中每個位置和員工都有ENTITYID。那麼我可以將資產分配給實體,而不是直接分配給員工或商店?是這樣的正確的方式 - 或完全相反的方向嗎?

我已經玩了很多年的Access和SQL數據庫,但從來沒有太高級。我絕對不是DBA!

任何建議,你可以提供將不勝感激。我相信以後會有更多的問題要遵循;)

+1

您正在增長的零售連鎖店是否正在使用MS Access來使用一位經驗不足的開發人員重新發明輪子?爲什麼?這是因爲他們不重視資產追蹤,而且這是一個非常低的優先級?然後它並不重要,你的設計是什麼,呃: -/ – TessellatingHeckler

+0

我想我會使用分配表與3個領域 - 資產,店鋪分配和員工分配。那麼你可以使用這個外部連接到其他3個表(資產,商店,僱員)來獲得所有必要的信息。 –

+0

@DonGeorge這聽起來不錯,但爲什麼不分配類型,人員或商店是有效的條目。 – Fionnuala

回答

0

那麼有多種方式來解決問題,但一個簡單的可能就是要創造一個您將分配一個新表的實體。

enter image description here

分配表是你添加的每一個分配的條目,不管它是什麼類型。

So Asset Id是資產表中的外鍵。 分配類型是部分原因,以確定它是否被分配到一個地點或員工(這可能是簡單的文本或數字) 分配ID會從任何職位或員工

如果你只會有外鍵一次將一個資產分配到一個地方,那麼分配表可以將資產ID作爲關鍵字。

還有其他的方法,這可能是好還是壞,但沒有一點使它比你需要和在工程更復雜。一個好的解決方案只是一個可以工作並滿足您需求的解決方

+0

這很有意義。你如何看待@DonGeorge上面所說的? 「如果我可以避免這種情況,我寧願在一個字段中沒有兩種不同類型的數據,所以即使類型字段區分它們,我也不會將商店ID和員工ID都放在同一字段中。」在一天結束時,我幾乎是唯一訪問數據庫的人。就像你說的那樣,只要它有效,那纔是真正重要的。我只是盡我所能學習並遵循最佳做法。 – bps

+1

要確定什麼是最適合您的方法,爲什麼不考慮提取數據的問題以及哪些問題最適合您。這也取決於你在何處,何時以及如何加入數據。你可以在數據庫端或應用端做更多的工作。每個方面都有優點和缺點。在應用程序端執行它的優點是,如果稍後更改數據庫,則可能意味着更新它的工作量會減少(當然取決於您的數據庫)。 –

+1

這非常有意義。在進行更多有關構造數據的工作之前,我將更多地關注如何計劃提取數據。感謝您的建議! – bps