2012-11-05 30 views
2

我正在研究數據庫設計和理論,並最終做出了一個深思熟慮的嘗試,以創建基於SQL的模式。如果有人有時間,我想要檢查我的佈局並確保它是合乎邏輯的。旨在提高我的知識的技巧和批評當然是受歡迎的! :)請檢查我的數據庫模式 - 需要輸入

以下是我的總體目標: 創建一個數據庫,該數據庫允許具有多個商店的業務通過簡單標記訓練日期和日期驗證來跟蹤員工培訓進度。基本上,這將是層次結構:

Business 1 
--Store Location (a) 
----Employee 
----Employee 
----Employee 
--Store Location (b) 
----employee 
----employee 
----employee 

Business 2 
--Store Location (a) 
----employee 
----employee 
--Store Location (b) 
----employee 
----etc... 

此架構應允許無限商業,商店和員工。

至於訓練得好,應該有這種類型的層次結構:

Business 1 
--Employee Class   (Manager, Employee, Salesman, Associate, etc) 
----Training Category  (Sales, Stocking, Manufacturing, etc) 
------Training Activity (How to sell X product, How to stock Y aisle, etc) 
------Training Activity 
------Training Activity 
----Training Category 
------Training Activity 
------Training Activity 
--Employee Class 
----Training Category 
----Training Category 

Business 2 
--Employee Class   
----Training Category  
------Training Activity  
------Training Activity 
------Training Activity 
----Training Category 
------Training Activity 
------Training Activity 
--Employee Class 
----Training Category 
----Training Category 

下面的東西應該根據業務需求是可變的,並且在創建企業帳戶的創建:

*Number of Stores 
*Number of Employees 
*Employee Classes 

*Training Categories 
*Training Activities 

所以最重要的問題是:
1)我有多接近?
2)如何做得更好?

在此先感謝!

這裏是鏈接到圖表的圖片: http://i1227.photobucket.com/albums/ee422/CorySCline/diagram.jpg

回答

1

它看起來相當不錯,距離一目瞭然。可以說,多對多的關係應該總是被打破。例如,在公司和員工表中,您有一個公司標識鏈接到員工標識。考慮一下這樣一個事實,員工可以被2家不同的公司聘用,其所有屬性都一樣。你將沒有唯一的標識符。解決這個問題的方法是創建一個匹配表,在這個表中你將有兩個屬性,company_id和employee_id(也許是一個自動增量標識符,以防萬一)。

同樣,考慮在商店之間移動的員工...您無法找到員工的業績記錄。另外,您可以通過員工類和員工來完成。

+0

感謝您的輸入:)爲了澄清,您的意思是在公司和員工之間創建一個包含company_id和employee_id以及唯一整數的中間表? –

相關問題