2015-10-18 65 views
0

我需要設計數據庫,這將保存有關員工的信息。他們可以分爲幾類:演員,導演或音樂家。這些類別也可能在一些類別上分開。所以,我擁有員工類別樹。而我有演出表,那必須有導演的外鍵。劇院員工數據庫設計

我可以製作表格嗎?它包含有關員工的常用信息,並且具有用於分類樹表的外鍵?它是正確的嗎?

employee_categorie 
+-----------------+----------+ 
|  name  | encoding | 
+-----------------+----------+ 
| actor   | 1  | 
| subactor1  | 1.1  | 
| subactor2  | 1.2  | 
| director  | 2  | 
| first_director | 2.1  | 
| second_director | 2.2  | 
+-----------------+----------+ 

employee 
+-------------+------------+-----------+-----------------------+ 
| employee_id | first_name | last_name | employee_categorie_id | 
+-------------+------------+-----------+-----------------------+ 
|   1 | Joshu  | Willis | 1.1     | 
|   2 | Genry  | Ford  | 2.1     | 
|   3 | Jeff  | Bridge | 1.2     | 
|   4 | Silvester | Obama  | 2.2     | 
|   5 | Mark  | Watney | 2.2     | 
+-------------+------------+-----------+-----------------------+ 

performance 
+----------------+------------------+-------------------------+ 
| performance_id | performance_name | performance_director_id | 
+----------------+------------------+-------------------------+ 
|    1 | Godzilla   |      5 | 
|    2 | Alice   |      4 | 
|    3 | God is dead  |      5 | 
+----------------+------------------+-------------------------+ 

對不起,我的英語不好。

+0

導演也是演員的情況如何?您不想在員工表中保留該類別的列,最好添加另一個表以創建類別和員工之間的多對多關係。 –

+0

謝謝,我知道,爲簡單起見,我沒有包含這張表。我更有興趣知道是否正確使用樹表。 –

+0

您是否需要保留與單一表現相關的員工名單? (導演,演員等) –

回答

1

基於我們在評論中交談中,我建議增加一個表performance_employees:

performance_employees 
+----------------+-------------+-------------+ 
| performance_id | employee_id | category_id | 
+----------------+-------------+-------------+ 
| 1    | 1   | 1.1   | 
| 1    | 2   | 2.1   | 
| 1    | 3   | 1.2   | 
+----------------+-------------+-------------+ 

,並在性能表外鍵添加到該表演員。此外,還要將檢查約束添加到性能表中,以確保director列實際指向a類別id指向director的記錄。

+0

謝謝,但我不明白,爲什麼有必要爲performance_employees演員添加一個外鍵,以及如何它看起來像。 –

+0

對不起,這是一個錯字。它應該是導演,而不是演員。 –