0
所以我有一個大概愚蠢的問題,我甚至不知道如果我想解決這個問題的正確途徑,但在這裏它是。Postgresql包含「可選」,可爲空的外鍵?
我有幾個員工部門,員工可以分配到一個部門,但不必須。我認爲使用部門不作爲員工的外鍵,但那些不屬於部門的員工呢? 我可以在fk列中插入null嗎?但我想知道,如果甚至工作,因爲我不能只插入參考列中存在的值?
這裏是我的相關代碼
CREATE TABLE department(depno int unique not null,
primary key(depno));
CREATE TABLE employee(ID int unique not null, name not null,
depno int,
primary key(ID))
foreign key(depno)
references department(depno)
我希望這個問題尚未已經回答了一百次,我只是還沒有找到我的答案,而尋找它在過去的兩小時。但我似乎無法找到任何關於這是否應該起作用的事情。
任何提示或解決方案將不勝感激! 非常感謝你!
BTW:'(depno int唯一不爲空,主鍵(depno)'是多餘的主鍵由定義'not null'和'unique'定義,只是:'depno int主鍵'就夠了。 – krokodilko
@krokodilko你說得對,我固定的職員表,但沒有檢查部門之一。您也可以在聲明該字段的同一行上引用外鍵。 –
另外你應該爲你的PK使用'SERIAL'類型,並讓Postgres的處理ID。 –