小编sep*_*hdo的帖子

在三元关系中实施参照完整性

员工被组织成团队。每个团队可以有多个员工,每个员工可以属于多个团队。这种多对多关系由team_membership表表示。

每个项目分配给一个团队。项目细分为任务,每个任务分配给一名员工。

是否可以保证任务的员工是相应项目团队的成员,而不添加触发器或冗余列?

示例表

CREATE TABLE employee 
  ( 
     employee_id   bigserial PRIMARY KEY, 
     employee_name text 
  ); 

CREATE TABLE team 
  ( 
     team_id   bigserial PRIMARY KEY, 
     team_name text 
  ); 

CREATE TABLE team_membership 
  ( 
     team_id     bigint NOT NULL REFERENCES team, 
     employee_id bigint NOT NULL REFERENCES employee, 
     PRIMARY KEY (team_id, employee_id) 
  ); 

CREATE TABLE project 
  ( 
     project_id   bigserial PRIMARY KEY, 
     team_id      bigint NOT NULL REFERENCES team, 
     project_name text 
  ); 

CREATE TABLE task 
  ( 
     task_id     bigserial PRIMARY KEY, 
     task_name   text, 
     project_id  bigint NOT …
Run Code Online (Sandbox Code Playgroud)

sql postgresql foreign-keys database-normalization

8
推荐指数
1
解决办法
70
查看次数