只是關於Oracle SQL中的連接表的一個簡短問題。我瞭解他們的功能和他們在「多對多」關係中的角色,但「一對多」關係又如何呢?我有兩個表格,Employees
和Positions
。每個員工只能擁有一個職位,但每個職位都可以有很多員工。例如John Doe只能成爲銷售主管,但公司中有4名銷售主管。這是我如何編碼到目前爲止:連接點/橋接表Oracle SQL
CREATE TABLE Positions (
position_id NUMBER(2) NOT NULL,
position_name VARCHAR2(25) NOT NULL,
CONSTRAINT pk_position PRIMARY KEY(position_id)
);
CREATE TABLE Employee (
emp_id NUMBER(3) NOT NULL,
emp_name VARCHAR2(30) NOT NULL,
emp_position NUMBER(2) NOT NULL,
emp_salary NUMBER(5) NOT NULL,
CONSTRAINT pk_employee PRIMARY KEY(emp_id),
CONSTRAINT fk_emp_pos FOREIGN KEY (emp_position)
REFERENCES Position(position_id)
);
CREATE TABLE pos_emp (
position_id NUMBER(2) NOT NULL,
emp_id NUMBER(3) NOT NULL,
CONSTRAINT pk_pos_emp PRIMARY KEY(position_id, emp_id)
);
這是正確的嗎?是否需要:
a。 Employee
表中的外鍵? b。聯結表?
我想在僱員表中強制執行一個僱員到一個角色關係,同時能夠在聯結表中擁有許多僱員關係的角色。
希望這是有道理的
我在我的代碼中設置了我的員工表。將'Employee'表中的'Position_id'作爲外鍵足以強制每個擁有多名員工的職位? – adohertyd
@adohertyd:更新了答案 – Arion