工人之间的循环参考+;SQL数据库中的项目和雇主
我有一份雇主和工人的名单。我需要登记一名工人为不同雇主所做的项目,但我还需要了解当前工人的雇主。我有:工人之间的循环参考+;SQL数据库中的项目和雇主,sql,sql-server,Sql,Sql Server,我有一份雇主和工人的名单。我需要登记一名工人为不同雇主所做的项目,但我还需要了解当前工人的雇主。我有: create table dbo.Employers ( Id int identity not null Name nvarchar not null ); create table dbo.Workers ( Id int identity not null CurrentEmployerId int not null, -- FK Name nvarchar (
create table dbo.Employers
(
Id int identity not null
Name nvarchar not null
);
create table dbo.Workers
(
Id int identity not null
CurrentEmployerId int not null, -- FK
Name nvarchar (120) not null,
);
create table dbo.Projects
(
Id int identity not null
WorkerId int not null, -- FK
EmployerToWhichTheProjectWasMadeId int not null, -- FK
Name nvarchar (120) not null,
);
在dbo.Workers中,我有一个EmployerId FK,它表示当前雇主
在dbo.Projects中,我有两个FK:WorkerId和EmployerId,说明项目由工人X向雇主Y进行。由于工人X有一个FK雇主,工人X目前为雇主Z工作
我不是因为这个才得到循环引用吗
如何避免这种情况?我认为上述代码没有任何问题。唯一的要求是,如果你要招聘新员工,你必须有一个雇主。如果你正在做一个新项目,你必须有一个工人和一个雇主。循环引用类似于雇主需要EmployerId才能创建 在您的模型中,工人可以在不完全属于其雇主的项目中工作。如果这是一个有效的场景,那么模型是正确的。如果这是不可能的,那么您可以从项目中删除雇主id,因为雇主将由工人决定。我的模型是这样的原因是:工人中的雇主是当前雇主,而项目中的雇主是工作对象的雇主。因此,这是一个过去的雇主。这有意义吗?是的,有意义;然后,根据业务规则,该模型是正确的。没有循环引用,只有普通的FK依赖项。明白了。。。这是我的疑问。我只是标出了答案。非常感谢。