2012-07-15 72 views

回答

1

對於多對多的關係,標準的方法是創建一個單獨的表(MySQL的語法):

CREATE TABLE employee_job 
(empl_id integer not null, 
    job_id integer not null, 
    foreign key (empl_id) references employee(empl_id), 
    foreign key (job_id) references job(job_id) 
) 
0

如果你只是想儲存哪個員工參加什麼職業什麼一年,你可以有一個更簡單的設計:

Employee   
-------- 
EmpID PK 

Job 
-------- 
JobID PK 

Year (optional) 
-------- 
Year PK 

Participation   
------------- 
EmpID PK, FK1 
JobID PK, FK2 
Year PK, FK3 (the FK3 is optional) 

如果你也想在不同的表,其工作是主動/可用於存儲哪一年以及哪一位員工受僱於哪一年(例如,如果您的僱員僱傭了幾年但未參加任何工作,或者您的工作有空,但沒有人在其中工作),則可以有更復雜的設計你建議:

Employee   
-------- 
EmpID PK 

Job 
-------- 
JobID PK 

Year 
-------- 
Year PK 

Employment 
---------- 
EmpID PK, FK 
Year PK, FK 

JobActivity 
----------- 
JobID PK, FK 
Year PK, FK 

Participation   
------------- 
EmpID PK, FK1 
JobID PK, FK2 
Year PK, FK1, FK2 

FK1將參考Employment(EmpID, Year)和FK2參考JobActivity(JobID, Year)

相關問題