我有一个可能很愚蠢的问题,甚至不知道我是否正在尝试正确解决它,但是这就是问题所在。
我有一个部门,有几个员工,员工可以被分配到一个部门,但不一定必须属于某个部门。我考虑使用员工表中的部门编号作为外键,但是那些没有所属部门的员工怎么办? 我能否只插入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)
我希望这个问题还没有被回答过一百次,而我在过去的两个小时里一直找不到答案。但是我似乎找不到关于这是否应该工作的任何信息。
非常感谢任何提示或解决方案!
(depno int unique not null, primary key(depno)
是多余的,根据定义,主键是not null
和unique
的,只需要depno int primary key
就足够了。 - krokodilko