假設我有一張名爲Employees的表格,每個員工都有一個名爲(E_ID) 的主關鍵字,並且我有另一個稱爲位置的表格,並且每個位置都有一個名爲(P_ID) 的主關鍵字,而且我還有另一個稱爲「並且每個辦公室都有一個ID(O_ID)如何在sqlServer中創建一個複雜的表?
現在我想創建一個包含三個主鍵(E_ID)和(P_ID)和(O_ID)的表......這三個值必須從前三張桌子,但我無論如何都做不到呢? 請幫助我,因爲我非常需要 非常感謝
假設我有一張名爲Employees的表格,每個員工都有一個名爲(E_ID) 的主關鍵字,並且我有另一個稱爲位置的表格,並且每個位置都有一個名爲(P_ID) 的主關鍵字,而且我還有另一個稱爲「並且每個辦公室都有一個ID(O_ID)如何在sqlServer中創建一個複雜的表?
現在我想創建一個包含三個主鍵(E_ID)和(P_ID)和(O_ID)的表......這三個值必須從前三張桌子,但我無論如何都做不到呢? 請幫助我,因爲我非常需要 非常感謝
如果是我,我想我只是將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));
分享和享受。
你使用什麼數據庫引擎? MS SQL Server?甲骨文? MySQL的? .... – 2010-10-31 14:08:48