2010-10-31 82 views
0

假設我有一張名爲Employees的表格,每個員工都有一個名爲(E_ID) 的主關鍵字,並且我有另一個稱爲位置的表格,並且每個位置都有一個名爲(P_ID) 的主關鍵字,而且我還有另一個稱爲「並且每個辦公室都有一個ID(O_ID)如何在sqlServer中創建一個複雜的表?

現在我想創建一個包含三個主鍵(E_ID)和(P_ID)和(O_ID)的表......這三個值必須從前三張桌子,但我無論如何都做不到呢? 請幫助我,因爲我非常需要 非常感謝

+0

你使用什麼數據庫引擎? MS SQL Server?甲骨文? MySQL的? .... – 2010-10-31 14:08:48

回答

0

如果是我,我想我只是將P_ID和O_ID添加到Employees。相同的職位可能由多名員工填補,並且在給定Office中可能有多個員工,但不太可能(不使用克隆技術)同一員工需要多次重複 - 因此,只需將P_ID和O_ID添加到員工和我認爲你很好去。當然,您需要從員工到職位(P_ID)和辦公室(O_ID)的外鍵約束。

編輯:經過一番思考,回想起我已經有了填補多個職位(儘管在同一地點)的工作,我想可以設想一個人可能會填寫多個職位,可能在不同的地點。

如果您確實在Employees,Positions和Offices之間建立了聯結表,那麼創建一個名爲EmployeePositionOffice(或類似的東西)的表,其中包含三列E_ID,P_ID和O_ID。主鍵應該是(E_ID,P_ID,O_ID),並且每個字段都應該對相關基表進行外鍵處理。

編輯: 不能確定SQL Server語法,但在甲骨文第一會是這樣的:

ALTER TABLE EMPLOYEES 
    ADD (P_ID NUMBER REFERENCES POSITIONS(P_ID), 
     O_ID NUMBER REFERENCES OFFICES(O_ID)); 

而第二個會是這樣的

CREATE TABLE EMPLOYEES_POSISTIONS_OFFICES 
    (E_ID NUMBER REFERENCES EMPLOYEES(E_ID), 
    P_ID NUMBER REFERENCES POSITIONS(P_ID), 
    O_ID NUMBER REFERENCES OFFICES(O_ID), 
    PRIMARY KEY (E_ID, P_ID, O_ID)); 

分享和享受。

+0

請你給我看一個簡單的代碼來做到這一點 – Mouayad 2010-10-31 14:55:39

+0

因爲我試圖以類似的方式做,但我失敗 – Mouayad 2010-10-31 14:55:55

+0

我起訴SQL Server 2008 – Mouayad 2010-10-31 15:54:41