题
如果我们提出:
- 资源(id(企业)、名称)
- 经理(id(企业),resource_id(FK),manager_resource_ID(FK))
应该resource_id和manager_id以外键入 资源 表。
显然我不想进入任何价值在每个这些列是不适当的资源
当我加入第关系(resource_id <->id)它工作得很好,但是
当我加的第二个(manager_resource_id <->id)失败的错误:
无法创建关系[...] ALTER表的声明冲突,与外国主要制约[...].冲突发生在表格的资源,列id
或者我需要打破这种出入3个表?
资源(id,第一,最后)
Resource_manager(id,resource_id,manager_ID)
经理(id)
解决方案
只是一个提示:
更新:
如果模型有的员工-管理作为"多对多"(位不同寻常的),然后你可以这样做:
CREATE TABLE Employee
(
EmployeeID int NOT NULL
,[Name] varchar(50)
)
go
ALTER TABLE Employee ADD
CONSTRAINT PK_Employee PRIMARY KEY CLUSTERED (EmployeeID ASC)
go
CREATE TABLE Manager
(
EmployeeID int NOT NULL
,ManagerID int NOT NULL
)
go
ALTER TABLE Manager ADD
CONSTRAINT PK_Manager PRIMARY KEY CLUSTERED (EmployeeID ASC, ManagerID ASC)
,CONSTRAINT FK1_Manager FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID)
,CONSTRAINT FK2_Manager FOREIGN KEY (ManagerID) REFERENCES Employee(EmployeeID)
,CONSTRAINT chk_Manager CHECK (EmployeeID <> ManagerID)
go
其他提示
你必须创造外键的管理表。
不隶属于 StackOverflow