现有3个表,结构如下:
项目表:pj
id pjName pjAdmin
(项目ID) (项目名)(项目管理员)
1 项目A 管理员1
2 项目B 管理员2用户表:user
userName
(用户名)
管理员1
管理员2
管理员3
管理员4
管理员5
管理员6项目成员表:pjUser
id pjId userName
(ID) (项目ID) (用户名)
1 1 管理员1
2 1 管理员3
3 1 管理员4
4 2 管理员2
5 2 管理员5现想创建约束,项目的管理员,必须系项目的成员。如:管理员5不能成为项目A的管理员
请问如何做?
项目表:pj
id pjName pjAdmin
(项目ID) (项目名)(项目管理员)
1 项目A 管理员1
2 项目B 管理员2用户表:user
userName
(用户名)
管理员1
管理员2
管理员3
管理员4
管理员5
管理员6项目成员表:pjUser
id pjId userName
(ID) (项目ID) (用户名)
1 1 管理员1
2 1 管理员3
3 1 管理员4
4 2 管理员2
5 2 管理员5现想创建约束,项目的管理员,必须系项目的成员。如:管理员5不能成为项目A的管理员
请问如何做?
pjId和userName联合作唯一约束或主键
项目表:pj
pjAdmin作外键约束引用pjUser表userName字段
由于表pjUser的主键是两个,做外键约束时也要两两对应。那样就要用项目表pj的id和pjAdmin跟pjUser的pjId和UserName。
但是这样的话,因为工作流程肯定是先有项目,再有项目成员。现在外键也约束项目表pj不能添加新的项目