如何检查表中的下列一致性?
桌子是这样的:
Employee:
employee_id | Name | job_title | department_name所有拥有相同职位的员工必须属于同一个部门。 例如:所有作为股票经理工作的员工都属于部门托运。如果任何员工在具有相同职务名称的其他部门工作,则脚本必须以下列格式显示违反上述一致性约束的行为。
职务名称:雇员ID
发布于 2017-05-27 03:58:00
单独使用CONSTRAINTS并不完全可能,因为您仍然需要依赖于没有存储在任何地方的数据。这可以通过另一个仅讨论JOB_TITLE和DEPARTMENT之间关系的查找表来实现。
除非这种关系没有实现,否则此要求可能不会如您所期望的那样起作用。
以下是你所期望的:
CREATE TABLE JOB_DEPT_RELATIONSHIP AS (
JOB_TITLE VARCHAR(255) NOT NULL PRIMARY KEY,
DEPARTMENT VARCHAR(255) NOT NULL,
UNIQUE(JOB_TITLE, DEPARTMENT)
);那么,您的实际表可以定义为这样,我猜:
CREATE TABLE EMPLOYEE AS (
EMPLOYEE_ID INT AUTO_INCREMENT PRIMARY KEY,
EMPLOYEE_NAME VARCHAR(255) NOT NULL,
JOB_TITLE VARCHAR(255) NOT NULL,
DEPARTMENT_NAME VARCHAR(255) NOT NULL,
CONSTRAINT FK_JOB_DEPT_RELATIONSHIP FOREIGN KEY (JOB_TITLE, DEPARTMENT_NAME) REFERENCES JOB_DEPT_RELATIONSHIP(JOB_TITLE, DEPARTMENT)
);希望这能有所帮助!
发布于 2017-05-27 07:18:28
我相信在同一所大学就读时,我们可能被赋予同样的任务。我现在就这么做了,这些桌子也许能帮别人看清楚。我还是习惯了这里的格式。
我不允许发布图片,所以我会尝试发送一个链接,也许合适的用户可以为我编辑这个,谢谢:http://imgur.com/a/FeFRz
https://stackoverflow.com/questions/44212742
复制相似问题