nut*_*lla 3 sql database primary-key
CREATE TABLE Employee
(
employeeID INT (10) PRIMARY KEY,
Name CHAR (20)
);
CREATE TABLE SALARY
(
employeeID INT (10) PRIMARY KEY,
Salary INT (10)
);
Run Code Online (Sandbox Code Playgroud)
是否可以在两个表中使用相同的主键?
是的你可以。您可以为salary.employeeid员工表创建表的主键和外键:
CREATE TABLE salary (
employeeid INT NOT NULL,
salary INT NOT NULL,
CONSTRAINT pk_salary PRIMARY KEY (employeeid),
CONSTRAINT fk_salary_employeeid FOREIGN KEY (employeeid) REFERENCES employee (employeeid)
);
Run Code Online (Sandbox Code Playgroud)
这会在表之间创建 {1}:{0,1} 关系,并确保您在未存储员工的情况下无法存储薪水,并且无法为一名员工存储多份薪水。
这是我们很少做的事情。(我们宁愿把工资做成员工表中的一列。)我看到的单独工资表的唯一好处是,你可以在员工表上授予权限,但在工资表上撤销它们,从而使工资表对某些数据库用户不可见。